如何远程调试Tomcat或者Weblogic

对于开发和实施人员来说,也许大家经常会碰到这样的对话:

    实施工程师:系统有问题了,是哪里哪里(省略字若干+若干界面截图)
    开发工程师:不可能,我这边还原了整个环境,包括数据库、代码和中间件……
    实施工程师:这边是weblogic,你那边是?
    开发工程师:我的是Tomcat,但Tomcat和weblogic的差异呢,不知道……

    然后就没有结果,因为我们的个人电脑真的无法或者难以承受weblogic或者websphere之重。

    怎么办呢,其实我们可以用远程调试的方法:
   
    三步配置远程调试:
    一、对于TOMCAT:
      1、打开catalina.bat,并加入:
        SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555
      2、配置Eclipse,如下图(此时Port与上面的address一致,是5555):

 
    3、如果Tocat已经起来(注意,可能在另外的机器上),那点击debug,即可进行与本地服务一样的调试过程。

    二、对于Weblogic:
      1、打开startWebLogic.cmd,并调整执行java命令的地方:
%JAVA_HOME%/bin/java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%/server/lib/weblogic.policy" weblogic.Server
调整为
@REM ORG : %JAVA_HOME%/bin/java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%/server/lib/weblogic.policy" weblogic.Server
@REM Surport Remote Debug :
set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_Socket,address=4000,server=y,suspend=n
%JAVA_HOME%/bin/java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%/server/lib/weblogic.policy" weblogic.Server
      2、其他配置类似Tomcat,如下:
    
    3、同样,如果weblogic已经起来(注意,我上面的例子就是weblogic不在本机上,而在于另外的机器上),那点击debug,即可进行与本地服务一样的调试过程,如下:

    大家也许会问:这样调试会不会影响客户使用?当然会影响,如果一旦hit了断点,则整个应用会被挂起。那怎么样才能尽可能的进行调试呢?方法还是有的:
    1、如果是tomcat,重新复制一份tomcat,修改一下端口,然后起来后调试,此时整个环境都类似了,调试起来非常方便;
    2、如果是weblogic,重新建立一个新的domain即可,互不干扰;
    3、如果是websphere,呵呵,没试过,留给大家的作业。

    原理?好奇的人还会问,其实就是jdwp(Java(tm) Debug Wire Protocol),有兴趣就google一下吧。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值