如何在eclipse中调试在jetty上运行的web应用程序?

如何在eclipse中调试在jetty上运行的web应用程序?,eclipse,debugging,web,jetty,Eclipse,Debugging,Web,Jetty,以前从未做过网络编程。有没有办法设置断点,请参阅eclipse中的变量值?我要调试的应用程序生成了一个我想轻松提取的查询字符串。单击外部工具配置 选择程序并单击左上角的新建按钮。 将位置设置为maven二进制文件 本地工作区的工作目录和jetty:run的参数 在环境选项卡中设置maven选项。注意套接字地址=4000,挂起=y 转到调试配置并添加新的远程应用程序。添加项目名称并设置套接字地址。现在运行外部工具,它应该说: 正在侦听地址为4000的传输dt_套接字 然后,您可以调试远程应用

以前从未做过网络编程。有没有办法设置断点,请参阅eclipse中的变量值?我要调试的应用程序生成了一个我想轻松提取的查询字符串。

单击外部工具配置

选择程序并单击左上角的新建按钮。 将位置设置为maven二进制文件 本地工作区的工作目录和jetty:run的参数

在环境选项卡中设置maven选项。注意套接字地址=4000,挂起=y

转到调试配置并添加新的远程应用程序。添加项目名称并设置套接字地址。现在运行外部工具,它应该说:

正在侦听地址为4000的传输dt_套接字

然后,您可以调试远程应用程序并添加断点等


这篇文章的答案显示了远程调试器需要传递到JVM的标志

这是解释JVM远程调试器的页面


我将使用以下命令使用maven运行应用程序:
mvnDebug jetty:run

并在EclipseIDE中使用端口8000设置远程Java应用程序


请参阅的“设置Maven 2.0.8+”部分:

没有一个答案适合我。以下是成功的方法:

  • 为您的项目创建Maven Eclipse运行时:
  • 右键单击project->maven build->goals:jetty:run
  • 转到Maven Eclipse运行时的JRE选项卡,在VM参数部分添加:
-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,地址=8000,服务器=y,挂起=n

执行此运行时,Eclipse控制台输出的第一件事(蓝色)是:

正在侦听地址为8000的传输dt_插座

现在,您可以创建一个远程Java应用程序调试运行时并连接到调试端口(本例中为8000)

“尝试以这种方式运行时,我得到CreateProcess error=193,%1不是有效的Win32应用程序。”


在windows上,选择mvn.bat而不是mvn.exe。

当URL被破坏时,我会展开eaykin的答案

运行Mvn调试,如下所示

$mvnDebug-Dmaven.test.skip-Denvironment=dev clean jetty:run

这将在端口8000上等待

准备在调试模式下执行Maven侦听传输 地址为8000的dt_插座

然后转到Eclipse运行-->调试配置-->远程Java应用程序 如果不是默认值,则将主机定义为“localhost”,将端口定义为8000


如果单击“调试”按钮,将从mvn启动应用程序。

如果您正在使用intellij。这要容易得多。 确保已安装jetty插件。然后

  • 在最右边的Maven选项卡中,展开项目
  • 展开插件
  • 扩展码头
  • 右键单击jetty:run并选择“调试调试”

  • 你是怎么开始Jetty的?如果通过
    mvn:jetty
    ,那么您所要做的就是在调试模式下启动启动配置。我的意思是
    mvn jetty:run
    ,对不起。尝试以这种方式运行时,我得到CreateProcess error=193,%1不是有效的Win32应用程序。尝试使用此设置调试时,连接被拒绝。这项工作的先决条件是什么?该项目使用ant命令运行jetty。难道没有办法从命令行这样运行它并将调试器附加到IDE中吗?/usr/bin/mvn是一个*nix路径,将其更改为c:\where\u maven\u。或者,如果您想通过命令行运行,只需将MAVEN_OPTS设置为系统变量并运行mvn jetty:run on command line我发现了一个名为run jetty run的东西,正在尝试配置该atm。我希望这是一个有效的调试选项。如果失败的话,我会再次尝试maven。谢谢你的帮助,很好的帖子顺便说一句。当你运行jetty运行时,发布一个答案或评论。如果答案有帮助,请投赞成票,并接受其中一个答案。项目构建对我来说太复杂了,无法理解并让调试器工作,所以我暂时放弃了。我会投票赞成你的答案,因为它可能对别人有帮助