【问题标题】:How to remotely debug the webapplication running on tomcat service?如何远程调试运行在tomcat服务上的webapplication?
【发布时间】:2012-04-19 03:53:48
【问题描述】:

我在 serverA 的 tomcat 6 上有我的 web 应用程序。我将tomcat 作为服务运行,即通过tomcat6w.exe 位于<tomcat_home>/bin 文件夹下。远程调试 webbplication 我已经添加了下面的行,如网络上不同的博客/网站上的建议,在不同的行末尾没有空间。提到端口为 8443,因为应用程序在同一端口上运行。

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

现在通过服务器 B 上的 eclipse 我提到主机为服务器 A 和端口 8443,然后单击调试。 2-3分钟后它建立连接没有给出任何错误。但现在 当我在IE 中点击 webapplication url 时,它没有显示并说IE 无法显示网页。但是一旦我删除了上面提到的调试参数 并点击 url,应用程序工作正常。当tomcat作为窗口服务运行时,我没有得到我应该如何调试应用程序?

参考以下是我双击tomcat服务时的参数

--   Under java tab 
--jvm section value  
 C:\Program Files\Java\jre6\bin\client\jvm.dll

--java classpath section value  
 C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\bootstrap.jar

--java options section value  
 -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
 -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\common endorsed
 -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp
 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
 -Djava.util.logging.config.file=C:\Program Files\Apache Software 
  Foundation\Tomcat6.0\conf\logging.properties-XX:MaxPermSize=512M
 -Djavax.net.ssl.trustStore=c:/.keystore
 -Djavax.net.ssl.trustStorePassword=changeit-Xdebug 
 -Xrunjdwp:transport=dt_socket,address=8443,server=y,suspend=n  

--Under startup tab

--class section value  
org.apache.catalina.startup.Bootstrap

--workingpath section value  
 C:\Program Files\Apache Software Foundation\Tomcat 6.0

--arguments section value  
 start

--mode section value  
 jvm

【问题讨论】:

    标签: java tomcat6


    【解决方案1】:

    在 Java 选项选项卡中添加以下内容。记得放

    -Xdebug 
    

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

    单独的行中。

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

    【讨论】:

    • 虽然这是正确的,但它并不能消除提问者的困惑。更多详细信息说明为什么会这样,以及下一步该做什么会很有用。
    • 如果您已将tomcat 安装为Windows 服务,则右键单击Tomcat6w.exe 并“以管理员身份运行”然后在Java 选项卡上查找Java 选项。这就是你添加两行的地方。
    【解决方案2】:

    您可以使用 JvmOptions 参数传递 JVM 选项:

    tomcat.exe //TS// ++JvmOptions -Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
    

    tomcat.exe //RS// ++JvmOptions -Xdebug;-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
    

    【讨论】:

      【解决方案3】:

      当我需要远程调试部署在 Tomcat 上的应用程序时,我通常通过 Catalina.bat 脚本启动服务器,而不是作为 Windows 服务。实际上,要启用远程调试,您应该在执行 catalina.bat 脚本时提供 JPDA 参数:

      catalina jpda 开始

      如果您确实需要将服务器作为服务启动,您可以尝试编辑其定义,以便您还为其提供 JPDA 参数。

      你也可以停止你的 Tomcat 服务并通过执行 catalina.bat 脚本来启动服务器。

      希望这会有所帮助。

      【讨论】:

      • 奇怪...你的意思是我不能远程调试部署在作为服务运行的 tomcat 上的应用程序?
      • 我已经尝试了几次并搜索了这个问题,但没有找到如何...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 2011-04-21
      • 2021-10-05
      • 2015-06-18
      • 1970-01-01
      • 2016-10-25
      相关资源
      最近更新 更多