首页 > 代码库 > Jetty开发指导:调试

Jetty开发指导:调试

如果你有一个web应用部署到Jetty,你能容易地从远程调试它。但首先你必须使用附加的参数启动远程JVM,然后在Eclipse中启动一个远程调试连接。这很容易就能做到。
注意:下面的例子假定你正在部署你的web应用到Jetty发布版本中。

设置Jetty调试端口

假定你将你的webapp部署到Jetty,有两种不同的方式设置调试端口:

通过命令行

在命令行中增加要求的参数如下:

$ java -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n -jar start.jar

通过start.ini

如果你不想记住命令行中的参数,那么这个方法将是最好的。
 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

在Eclipse中调试

由于Jetty能非常容易地嵌入应用程序中,因此在应用程序中创建一个main方法,然后在Eclipse中直接地启动程序,就能更容易地调试你的应用。更详细的信息可以参考嵌入。