如何远程debug部署到widefly/JBoss服务器上的J2EE程序

一般来说,当我们的J2EE软件最终部署到服务器之后,就会和我们的本地开发环境有很大的不同:

  1. 服务器上的widefly或Jboss一般都是运行在JRE上,而不是本地开发环境的JDK
  2. 服务器上的widefly或Jboss都是运行的domain mode而不是本地开发环境的standalone mode
因此,当你的J2EE程序在服务器上出现很难在本地复现的问题时,我们是很需要在一个远程调试的方法。下面的一个可行的方法:
    • Prepare JDK

     


    • Sent to Lab

     


     

    • Install it

     

    rpm -ivh jdk-7u80-linux-x64.rpm

     

    • Start up server with debug mode
      • Update host.xml

     vim /jboss-eap/domain/configuration/host.xml, add option "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787"

    注意,这一步很关键,因为当Widefly或Jboss在domain mode启动的时候,我们要debug是app本身(运行在host上),而不是host controller

     


     

    • Update domain.sh

    vim /jboss-eap/bin/domain.sh (JAVA="/usr/java/jdk1.7.0_80/bin/java"), 让Jboss在JDK上启动

     


     

     

     

    23/05/2016 13:54 - Screen Clipping

     

     

    • Restart jboss


     

    • Configure Idea remote debug

     


     

     

    这时,你就应该能连上JBOSS并远程Debug了 


你可能感兴趣的:(jdk,jboss,服务器,J2EE,调试)