IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]项目远程调试

    lfsf802发表于 2015-03-28 22:13:05
    love 0

    背景

    在Java项目开发的过程中,本地调试是非常普遍的,但是有些情况也是本地调试所做不到的,例如Maven项目等。
    
    其实这时候就需要远程调试,不管开发工具是Eclipse,还是Netbeans,异或是IDEA,都是可以实现远程调试的,当然这也离不开应用服务器的支持。
    

    具体说明

    列举两个应用服务器的实例,一个为resin(4.0版本,以前版本的配置方式可以自行查找)服务器,一个为tomcat服务器。
    

    resin服务器

    过resin服务器的童鞋都应该清楚,resin服务器的核心配置文件是resin.xml,进行远程调试的话,需要在resin.xml文件中配置一下标签的子标签。
    
    具体配置如下:
    
    <jvm-arg>-Xnoagent</jvm-arg>
    <jvm-arg>-Xdebug</jvm-arg>                      
    <jvm-arg>-Djava.compliler=NONE</jvm-arg>
    <jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082</jvm-arg>
    
    这里需要注意的是address的端口号,这个是监听jvm的端口,如果远程调试是需要输入这个端口号的。配置完成之后重启resin。
    后面就需要配置IDE环境了,每个IDE都有下面的配置:
    

    remot java application

    在IDE中需要配置一个Remote java application的配置并且运行找到我们要部署的项目,并且输入主机地址和端口号:
    

    配置

    在运行之前确保resin中已经部署了此项目,如果部署了就可以执行了,这时候在IDE中就可以设置断点了,当访问的时候就可以执行到断点处。
    

    Tomcat服务器

    配置tomcat,主要是添加一个文件debug.bat,文件内容为
    
    set JPDA_ADDRESS=8000 
    set JPAD_TRANSPORT=dt_socket 
    SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 
    startup
    其实这里和resin的类似,address是监听jvm的端口号,这时候以后启动tomcat的时候仅仅启动debug.bat文件即可。
    
    剩下的就是IDE的配置,和resin是一样的。
    

    提示

    这里提到的一点就是,如果不想每次打包项目部署的话,可以将resin或者tomcat服务器的部署项目位置直接改成要调试的项目位置即可。
    

    总结

    有了远程调试,有些项目的调试不再用打印日志的方式了,还是很方便的。
    


沪ICP备19023445号-2号
友情链接