不知道大家有没有这样的经历:把在本地调试好的应用部署到生产机或者服务器上的时候,发现有一些莫明其妙的问题,而这些问题在本地的时候,是没有的。
但是代码在服务器上,又不知道如何调试,是不是很痛苦?
其实远程的代码也是可以调试的,方法很简单!!!
第一步:修改服务器上的%CATALINA_HOME %\bin里面的catalina.bat文件,加上如下一句话
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555
这句话的意思是打开5555端口。
第二部:保证在本地机器上拥有和服务器上的代码一致的工程,然后在这个工程上右击,选择调试方式,然后是打开调试窗口,找到Remote Java Application,把端口和IP填上,再DEBUG,就可以了!!!
在本地下一个断点,再登陆服务器的应用,会发现可以断得到应用!!!调试方法和调试本地应用一样的。
是不是很有意思,不过要注意在Linux下,有一点点差异,是要编辑catalina.sh文件。
而且要改成这样:
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555"
也就是把SET去掉,后面加双引号引起来,因为在Linux下,是没有SET这个语法的。我为这个问题搞了好久才明白.......
性能调优的话,就是给Tomcat启动的时候,分配给JVM的内存做个设置,一般来说可以设置成1G,也是更改上面说的那个文件,语句如下:
SET JAVA_OPTS=-Xms1024m -Xmx1500m
在Linux下的话,应该是
JAVA_OPTS="-Xms1024m -Xmx1500m"
设置大了可能会启动不了!!!