eclipse上ofbiz项目的断点调试

  进来对ofbiz开发的项目进行了断点调试。在官方文档上找到了一个断点调试的文章:http://docs.ofbiz.org/display/OFBIZ/Running+and+Debugging+OFBiz+in+Eclipse

英文好的可以考虑直接看英文文档。

  断点调试的基本点:

  1、启动ofbiz的时候必须以"%JAVA_HOME%/bin/java" -Xms128M -Xmx384M -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar ofbiz.jar > runtime/logs/console.log 的方式来启动ofbiz项目。这样就为我们的调试开启了外接端口,这里为5005,当然你可以改为其他任何的端口

  2、我们只能对那些java类文件进行断点调试,不能对那些beanshell文件进行断点调试

  3、这个和传统的调试方式不同的是,传统的是直接设定tomcat的启动模式为debug模式,然后通过eclipse项目的插件完成。现在是通过建立一个远程调试来完成,主要是通过启动ofbiz提供的端口服务

 4、以上我都在windows xp环境下测试可行

  5、当你不知道你是否以debug方式启动了ofbiz,你可以用netstat -an 看里边是不是有5005(当然是你参数中指定的端口)。

 

  具体步骤:

 

Step 1: Run OFBiz in debug mode

Normally we start OFBiz with the command line

正常的我们以如下的方式启动ofbiz

%JAVA_HOME%/bin/java /-jar ofbiz.jar

To start in debug mode use the command line

我们使用如下的命令以debug方式启动ofbiz。
%JAVA_HOME%/bin/java /-Xdebug /-Xnoagent /-Djava.compiler=NONE /-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8091 /-jar ofbiz.jar

This changed command line instructs java to run in debug mode listening for a socket connection on port 8091 for a debugger to connect. You can change the port number to any port not otherwise being used.

这个命令行是让java以debug模式监听8091端口,ofbiz4版本的都是5005为默认的端口了。这个端口号你可以随便改,只是别和其他端口冲突了。

Step 2: Connect to OFBiz with Eclipse as a Debugger

Before connecting you have to create a new debug configuration.

  • In Eclipse choose Run->Debug... from the menu. A Debug window should pop up.

      在eclipse的菜单中选择“Run”菜单,然后选择“Debug...” 菜单,这时候一个调试窗口应该弹出了。

  • Select Remote Java Application from the tree on the left.

     在左边的树形结构菜单中选择“Remote Java Application

  • Click New (button on the bottom left).

     点击“New”按钮(这个按钮在底部左下方,不过我没找到,这个你可以通过点击右键来创建)

  • Type a name at the top (OFBiz, perhaps?)

    在右边的新出现的面板中填写一个名字(用ofbiz或者你的项目名称都行,这里我用yyy)

  • On the Connect tab(标签名:Connect,在那一大串的连接标签中)
    • Pick ofbiz for the project

          选择yyy这个项目(实际上就是你要调试的项目)

    • Select Standard (Socket Attach) for Connection Type

          对于Connect Type选择“standard”

    • Type localhost for host

          主机名写localhost(我的那默认的就是,当然你也可以写ip)

    • Type 8091 (or whatever port you chose) for port
  •       记得上边第一部的时候启动ofbiz设定的端口号5005吗(或者你用的是8091或者其他的)?将那个端口号写上
  • On the Source tab (点击那个Source标签)
    • Click Add Projects... (buttons on the right)

          这里指定我们项目的选吗了,直接点击“Add...”,将我们的ofbiz那个需要断点调试的项目加上

    • Select the ofbiz project    
  •  加上那个obiz的项目
  • Click Apply If you have OFBiz running debug (Step 1 above) you can start debugging by clicking Debug (on the bottom) now.

        如果你已经启动了那个需要断点调试的项目,点击“Apply”按钮,你就已经在debug了。启动Debug视图就可以看到那个Debug已经在运作了。

       这时候在你本地的源码中加上几个断点试试。
You know that you are connected when you see a start/stop button in the debug perspective of Eclipse.

      当你看到Debug视图上的start和stop按钮时,你应该知道你已经链接到要被调试的项目上了。

 

   原理:1、java本身提供了调试接口

            2、ofbiz以debug方式启动的时候,开放了这个接口的端口给外部访问

            3、我们在eclipse中加载了项目的源码,然后将源码和远程部署的项目(也可以是本地)对应上,在本地给java源码加上断点的时候,直接反馈就是给正在运行的项目加上了断点。这个技术叫做JPDA。

            4、eclipse在2005年就已经支持了这个远程调试的东东,具体请参考:http://www.eclipsezone.com/eclipse/forums/t53459.html

 

 

     

你可能感兴趣的:(java,eclipse,socket,command,button,debugging)