我可以从不同的intelliJ实例远程调试在IntelliJ中运行的tomcat吗?

时间:2013-07-24 19:34:07

标签: tomcat intellij-idea tomcat7 remote-debugging jdwp

我在intelliJ IDEA ultimate 11.1.4中打开了两个窗口。让我们称之为windowA和windowB。在windowA我正在运行Tomcat 7 localy。在windowB中,我想运行一个远程tomcat配置来调试部署到在windowA中运行的tomcat实例的代码。为此,我已将这些VM选项添加到本地tomcat配置中:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=62944,suspend=n,server=y

当我尝试启动tomcat时,我收到此错误消息:

ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.

这是完整的服务器输出:

B:\apache-tomcat-7.0.27\bin\catalina.bat run
ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
Using CATALINA_BASE:   "C:\Users\dallend\.IntelliJIdea11\system\tomcat\Unnamed_davidswebapp_8"
Using CATALINA_HOME:   "B:\apache-tomcat-7.0.27"
Using CATALINA_TMPDIR: "B:\apache-tomcat-7.0.27\temp"
Using JRE_HOME:        "B:\java\jdk1.6.0_33"
Using CLASSPATH:       "B:\apache-tomcat-7.0.27\bin\bootstrap.jar;B:\apache-tomcat-7.0.27\bin\tomcat-juli.jar"
Error occurred during initialization of VM
agent library failed to init: jdwp
Disconnected from server

我猜我在这里尝试做的事情完全是不必要的,我真的应该尝试这样的事情:Can IntelliJ debug two war files on the same instance of tomcat?

但我仍然是一个好奇的人,所以我有一些问题:

  • 上面的错误信息是什么意思?
  • 为什么会发生错误?
  • 我正在尝试使用intelliJ做什么?
  • 如上所述,我试图这样做只是愚蠢,但是有时候尝试从IntelliJ的不同实例远程调试在IntelliJ中运行localy的tomcat是个好主意吗?

2 个答案:

答案 0 :(得分:0)

IntelliJ可能会添加自己的-Xrunjdwp:参数来附加他的代理。

如果查看调试控制台的第一行,您将看到IntelliJ已构建的命令。

JDWP当时只支持一个调试器。你必须在两者之间做出选择。在IntelliJ之外运行命令应该可以解决这个问题。

答案 1 :(得分:-1)

要启用远程调试,将无法在调试模式下启动应用程序。 你应该直接运行程序(-Xdebug -Xrunjdwp:transport)。没有配置远程调试,然后通过调试启动程序