远程调试
首先得让目标server开启一个debug端口。
C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\bin\startWebLogic.cmd
添加如下语句即可,端口为9999
1 | set JAVA_OPTIONS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n |
接着需要将class缓存加载关闭,防止jsp页面修改后再请求无效。
C:\Oracle\Middleware12214\Oracle_Home\wlserver\server\lib\consoleapp\webapp\WEB-INF\weblogic.xml
1 2 3 | <page-check-seconds>0</page-check-seconds> <servlet-reload-check-secs>0</servlet-reload-check-secs> <resource-reload-check-secs>0</resource-reload-check-secs> |
0表示每次请求都刷新,正数表示刷新间隔秒数,-1表示不刷新。
配置完后即可重启服务端
然后IDEA添加debug配置,选择remote,填写目标IP和调试端口即可
至于要调试自己编写的代码,可以写好编译成class文件放到目标server上,注意路径是WEB-INF/classes/[packetname]/xxx.class
然后也需要重新运行weblogic,再写个jsp调用即可。
最后本地在IDEA的项目下放一个相同源码文件,下断点即可,就是注意每次修改代码都需要重新上传一份class到服务端,否则两边代码不一致,服务器也只会按照服务端的代码执行。
如果是要跟进weblogic系统库,那就把weblogic上的jar包拷到本地,一般是目标服务器项目下的modules下会有jar包。
总而言之远程调试,就是让IDEA可以检测到本地有和目标服务器上相同的class即可调试,这个其实可以扩展到其他中间件的调试,基本都是一样的方式。
注意事项:
1、断点下了没反应的话可以重新运行weblogic,然后访问/console/初始化。