当前位置: 代码迷 >> Web前端 >> 在Eclipse中调试maven下令生成的java web项目(jetty容器)
  详细解决方案

在Eclipse中调试maven下令生成的java web项目(jetty容器)

热度:359   发布时间:2012-07-04 19:33:55.0
在Eclipse中调试maven命令生成的java web项目(jetty容器)

????? 最近在学习webX过程中需要通过Maven命令建立项目,这样建立起相应的项目后只能在命令行下运行jetty容器,很不方便,于是在网上找了一些资料,能实现在Eclipse下运行jetty容器,并进行debug。特意写下来作为备份资料,供大家参考和以后查阅。

?

步骤1:启动web项目,进行调试:

???? 1.1采用的是jetty容器。首先要在pom.xml中配置plugin

????????? <!-- jetty插件 -->
????????? <plugin>
???????????? <groupId>org.mortbay.jetty</groupId>
???????????? <artifactId>maven-jetty-plugin</artifactId>
????????? </plugin>

????? 1.2下面配置一个外部工具来运行jetty。

?????????? 选择菜单Run->External Tools->External Tools Configurations

????? 左边选择Program,再点右键New:
?????
配置Location为mvn命令行路径。
??????? 选择Working Directory为当前需要运行的项目。

??????? Arguments填写:jetty:run

??????? 进过如此操作之后,点击run
??????? 便可运行该项目。

??????? 但此时也仅仅是运行项目,还没达到debug的要求。

???? 2.对web项目进行debug调试,

??????? 2.1在点击图2中的Environment选择项,新增一个,Environment varibles。

??????? 加入MAVEN_OPTS变量,值为

??????? -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n

????? ? 2.2下面进行debug运行配置,点击Debug->Debug Configuration

????????? 在配置中选择相应的project,端口要设置为与MAVEN_OPTS变量中的address=4000相同。
????? ? ? 配置完成之后,就可以设置断点进行debug调试了。

???? 首先按照步骤1 启动web项目 ,然后运行刚刚新建的Remote Java Application,进行断点调试.

???? 3.最后是jetty的shutdown。

??????? 3.1首先在pom.xml中
?????????? ? ?? <!-- jetty插件 -->
????????? ? ? ? <plugin>
???????????????????? <groupId>org.mortbay.jetty</groupId>
???????????? ? ? ? ? <artifactId>maven-jetty-plugin</artifactId>
??????????????? </plugin>

??????? ? ?? 修改为:

????????? ? ? ?? <!-- jetty插件 -->
???????????????? <plugin>
??????????????????????? <groupId>org.mortbay.jetty</groupId>
??????????????????????? <artifactId>maven-jetty-plugin</artifactId>
??????????????????????? <configuration>
??????????????????????????????? <stopPort>9966</stopPort>
?????????????????????? ? ? ? ?? <stopKey>foo</stopKey>
??????????????????????? </configuration>
????????????????? </plugin>

??? 然后运行该新建的program就可以了将运行的jetty项目shutdowm了。

?

????? 注意: 如果通过以上方式关闭jetty容器后,在浏览器中还能访问,请打开任务管理器,将名为java.exe的进程全部结束。问题就解决了,其原因可能是再配置过程中频繁的运行导致的问题,配置好后杀掉进程就正常了。debug调试时,请先通过配置的run启动程序,然后再运行配置的debug,调试程序,这样才能成功,不然会报错!

  相关解决方案