如果你有一个web应用部署到Jetty,你能容易地从远程调试它。但首先你必须使用附加的参数启动远程JVM,然后在Eclipse中启动一个远程调试连接。这很容易就能做到。
注意:下面的例子假定你正在部署你的web应用到Jetty发布版本中。
假定你将你的webapp部署到Jetty,有两种不同的方式设置调试端口:
在命令行中增加要求的参数如下:
$ java -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n -jar start.jar
如果你不想记住命令行中的参数,那么这个方法将是最好的。
1)编辑start.ini和非注释的--exec行;
2)增加上面在命令行中使用的参数,然后你的start.ini应该像这样:
#=========================================================== # Configure JVM arguments. # If JVM args are include in an ini file then --exec is needed # to start a new JVM from start.jar with the extra args. # If you wish to avoid an extra JVM running, place JVM args # on the normal command line and do not use --exec #----------------------------------------------------------- --exec -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n # -Xmx2000m # -Xmn512m # -XX:+UseConcMarkSweepGC # -XX:ParallelCMSThreads=2 # -XX:+CMSClassUnloadingEnabled # -XX:+UseCMSCompactAtFullCollection # -XX:CMSInitiatingOccupancyFraction=80 # -verbose:gc # -XX:+PrintGCDateStamps # -XX:+PrintGCTimeStamps # -XX:+PrintGCDetails # -XX:+PrintTenuringDistribution # -XX:+PrintCommandLineFlags # -XX:+DisableExplicitGC
3)启动时你将看到下面的行在控制台打印的顶部。
Listening for transport dt_socket at address: 9999
由于Jetty能非常容易地嵌入应用程序中,因此在应用程序中创建一个main方法,然后在Eclipse中直接地启动程序,就能更容易地调试你的应用。更详细的信息可以参考嵌入。
原文:http://blog.csdn.net/tomato__/article/details/38085473