Tomcat开放远程调试端口结合intellij idea进行debug以及tomcat在不同操作系统下catalina配置区别

项目的部署方式有在本地搭建服务器进行启动或是debug,或是将项目在远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是直接debug,但是如果

项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?而一些大公司的项目是不需要在本地搭建应用服务器的,为了环境统一,应用服务器都是在远程服务器上面,这时

我们就需要用远程debug,通过远程服务器的ip地址和远程开启的debug端口进行调试:

1.首先把远程服务器上面需要调试的代码放在IDE里面

2.在菜单栏选择run ->edit Configuration,点击+号,选择remote,然后在配置项里面输入远程需要调试机器的IP地址和所对应的端口号,最后在最上面输入该次一远程调试的项目

名字,方便自己区分不同的项目

Tomcat开放远程调试端口结合intellij idea进行debug以及tomcat在不同操作系统下catalina配置区别_第1张图片

3.将配置项中的-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5080添加到JAVA_OPTS的属性中,重启远程tomcat服务器

3.再次选择菜单条run按钮,找到debug+“自己设置的项目名字”,点击然后就可以进行远程debug调试

4.在本地项目中设置断点,然后访问远程机器上面的IP和端口,然后就可以在本地debug调试了

WIN系统,在catalina.bat里:

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899

Linux系统,在catalina.sh里:

CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899"

CATALINA_OPTSvsJAVA_OPTS

在Tomcat的catalina.sh或者catalina.bat文件中的启停server脚本中都应用到了两个变量: CATALINA_OPTS和JAVA_OPTS。用于保存Tomcat运行所需的各种参数。

他们在文件中的注释如下:

(可选)Java 执行"start","stop"或"run"命令时用到的运行时参数; [JAVA_OPTS]

(可选)Java 执行"start"或"run"命令时用到的运行时参数; [CATALINA_OPTS]

那么,为什么有两个不同的变量?他们有什么区别?

首先,定义在这两个变量中的参数都会被传递到启动Tomcat的命令:"start"和"run",只有定义在JAVA_OPTS中的参数会被传递到"stop"命令。

所以将参数定义到哪个变量中并不影响Tomcat的启动和运行,而只影响到了Tomcat的运行结束。

第二种区别更加微妙。其他应用程序也可以使用JAVA_OPTS,但Tomcat只会用到CATALINA_OPTS。所以如果你只使用了Tomcat,在设置环境变量时,你最好使用

CATALINA_OPTS,而如果你同时也用到了其他java应用程序,如JBoss,在设置环境变量时你应该使用JAVA_OPTS。

附上我的Tomcat配置catalina配置:

Windows:

set CATALINA_HOME=D:/software/tomcat/mainapp_tomcat
set CATALINA_BASE=%CATALINA_HOME%
set JAVA_HOME=C:/Program Files/Java/jdk1.8.0_144
set LCTEMP=%CATALINA_HOME%/logs
set LOCAL_DEV_PROPERTIES=%CATALINA_HOME%/conf/conf.properties
set LC_LOG_DIR=%CATALINA_HOME%/logs
set LC_DB_JNDI_NAME=java:comp/env/jdbc/slpool
set DR_MAIN_DB_JNDI_NAME=java:comp/env/mysql/drmain
set CMC_DB_JNDI_NAME=java:/comp/env/mysql/drcmc
set WM_DB_JNDI_NAME=java:comp/env/jdbc/wmpool
set WM_DB_SESSION_NAME=wmpool_tomcat
set WM_DB_USERNAME=****
set WM_DB_PASSWORD=****
set DR_CFG_ZOOKEEPER_ENV_URL=***,***,***
set USE_LOCAL_COOKIE_DOMAIN_NAME=true
set JAVA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 -Dfile.encoding=UTF-8 -Xms512m -Xmx1024m  -XX:MaxNewSize=256m -XX:+HeapDumpOnOutOfMemoryError
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
set JAVA_OPTS=%JAVA_OPTS% -DLC_SESSION_CONFIG=META-INF/sessions.xml
set JAVA_OPTS=%JAVA_OPTS% -DLC_DB_SESSION_NAME=sl_demo_tomcat
set JAVA_OPTS=%JAVA_OPTS% -DLC_DB_JNDI_NAME=java:/comp/env/jdbc/slpool
set JAVA_OPTS=%JAVA_OPTS% -Dlc.cfg.0=sysprop
set JAVA_OPTS=%JAVA_OPTS% -Dlc.cfg.1=db:base
set JAVA_OPTS=%JAVA_OPTS% -Dlc.cfg.2=db:sinoDemo
set JAVA_OPTS=%JAVA_OPTS% -Dlc.cfg.3=sysprop
set JAVA_OPTS=%JAVA_OPTS% -Dlc.cfg.4=fileprop:%LOCAL_DEV_PROPERTIES%
set JAVA_OPTS=%JAVA_OPTS% -DLC_DIR_DATA_EXT=%CATALINA_HOME%/webapps/ROOT/extdata
set JAVA_OPTS=%JAVA_OPTS% -Dwm.cfg.0=sysprop
set JAVA_OPTS=%JAVA_OPTS% -Dwm.cfg.1=db:base
set JAVA_OPTS=%JAVA_OPTS% -Dwm.cfg.2=sysprop
set JAVA_OPTS=%JAVA_OPTS% -Dwm.cfg.3=fileprop:%LOCAL_DEV_PROPERTIES%
set JAVA_OPTS=%JAVA_OPTS% -DWM_LOG_DIR=%CATALINA_HOME%/logs
set JAVA_OPTS=%JAVA_OPTS% -DWM_DB_SESSION_NAME=wmpool_tomcat
set JAVA_OPTS=%JAVA_OPTS% -DDR_CFG_ZOOKEEPER_ENV_URL=***,***,***
set JAVA_OPTS=%JAVA_OPTS% -DLC_LOG_DIR=%LC_LOG_DIR%
set JAVA_OPTS=%JAVA_OPTS% -DCMC_DB_JNDI_NAME=java:/comp/env/mysql/drcmc

Linux:

export CATALINA_HOME=/ArcDevelop/developTools/tomcats/mainapp_tomcat
export CATALINA_BASE=${CATALINA_HOME}
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
export LCTEMP=${CATALINA_HOME}/logs
export LOCAL_DEV_PROPERTIES=${CATALINA_HOME}/conf/conf.properties
export LC_LOG_DIR=${CATALINA_HOME}/logs
export LC_DB_JNDI_NAME=java:comp/env/jdbc/slpool
export DR_MAIN_DB_JNDI_NAME=java:comp/env/mysql/drmain
export CMC_DB_JNDI_NAME=java:/comp/env/mysql/drcmc
export WM_DB_JNDI_NAME=java:comp/env/jdbc/wmpool
export WM_DB_SESSION_NAME=wmpool_tomcat
export WM_DB_USERNAME=****
export WM_DB_PASSWORD=****
export DR_CFG_ZOOKEEPER_ENV_URL=***,***,***
export USE_LOCAL_COOKIE_DOMAIN_NAME=true
export JAVA_OPTS="${JAVA_OPTS} -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 -Dfile.encoding=\"UTF-8\" -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m  -XX:+HeapDumpOnOutOfMemoryError "
export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export JAVA_OPTS="${JAVA_OPTS} -DLC_SESSION_CONFIG=META-INF/sessions.xml"
export JAVA_OPTS="${JAVA_OPTS} -DLC_DB_SESSION_NAME=sl_demo_tomcat"
export JAVA_OPTS="${JAVA_OPTS} -DLC_DB_JNDI_NAME=java:/comp/env/jdbc/slpool"
export JAVA_OPTS="${JAVA_OPTS} -Dlc.cfg.0=sysprop"
export JAVA_OPTS="${JAVA_OPTS} -Dlc.cfg.1=db:base"
export JAVA_OPTS="${JAVA_OPTS} -Dlc.cfg.2=db:sinoDemo"
export JAVA_OPTS="${JAVA_OPTS} -Dlc.cfg.3=sysprop"
export JAVA_OPTS="${JAVA_OPTS} -Dlc.cfg.4=fileprop:${LOCAL_DEV_PROPERTIES}"
export JAVA_OPTS="${JAVA_OPTS} -DLC_DIR_DATA_EXT=${CATALINA_HOME}/webapps/ROOT/extdata"
export JAVA_OPTS="${JAVA_OPTS} -Dwm.cfg.0=sysprop"
export JAVA_OPTS="${JAVA_OPTS} -Dwm.cfg.1=db:base"
export JAVA_OPTS="${JAVA_OPTS} -Dwm.cfg.2=sysprop"
export JAVA_OPTS="${JAVA_OPTS} -Dwm.cfg.3=fileprop:${LOCAL_DEV_PROPERTIES}"
export JAVA_OPTS="${JAVA_OPTS} -DWM_LOG_DIR=${CATALINA_HOME}/logs"
export JAVA_OPTS="${JAVA_OPTS} -DWM_DB_SESSION_NAME=wmpool_tomcat"
export JAVA_OPTS="${JAVA_OPTS} -DDR_CFG_ZOOKEEPER_ENV_URL=***,***,***
export JAVA_OPTS="${JAVA_OPTS} -DLC_LOG_DIR=${LC_LOG_DIR}"
export JAVA_OPTS="${JAVA_OPTS} -DCMC_DB_JNDI_NAME=java:/comp/env/mysql/drcmc"


你可能感兴趣的:(tomcat)