最近到了新公司,接到的第一个任务就是学习怎么做远程调试,摸索了三天终于搞定了。
一般在服务器上调JSP经常要写一大堆的println,Sun对些发布了一个 Java 平台调试架构( Java Platform Debugger Architecture , JPDA ),利用JPDA,提供的端口,我们可以实现远程调试!我的运行环境为JBuilder 2005 +Weblogic 8.1。
首先,要让远程服务器VM以调试模式启动,加载 Java Debug Wire Protocol ( JDWP ) 。
如果你windows系统,找到服务器路径下的start(servername).cmd,如果是linux或其它的系统,修改服务路径下的start (servername).sh文件。比如:我的Weblogic下有个服务名叫ExamplesServer的服务,文件就是 startExamplesServer.cmd。用文本编辑器打开,添加如下语句:
@set JAVA_OPTIONS= -Xdebug -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n
意思是以socket方式建立一个debug服务,端口号为3999(可选,只要是没有用过的端口!)。修改后重新启动服务!
如图:
然后,在JBuilder里打开远程调试的设置。
选择Run->Configurations...,选择你调试用的设置,选择修改,然后在弹出的窗口中选择Run->Debug-> Remote,勾上Enable Remote Debugging,选择Attach,在Host name里输入远程weblogic的机器名,Transport Type选择dt_socket,端口号为3999。
如图:
然后,设置你的JSP的运行环境。
双击weblogic.xml,添加如下的语句:
<jsp-descriptor>
<jsp-param>
<param-name>keepgenerated</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>precompile</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>compileFlags</param-name>
<param-value>-g</param-value>
</jsp-param>
</jsp-descriptor>
重新编译项目并deploy。
接着就可以直接设置断点调试了!
同理也可以设置Eclipse和Tomcat,只不过Tomcat修改的是catalina.bat或catalina.sh。