我想从Eclipse设置远程调试。 Tomcat在Windows上作为服务运行。
这一点很好,一个快速谷歌指向我正确的设置添加到wrapper.conf启用此功能。 wrapper.conf中已有条目,因此我复制/粘贴了最后一个条目并进行了修改:
wrapper.java.additional.8="-Djava.endorsed.dirs=C:/Program Files/OurApp/tomcat/common/endorsed"
wrapper.java.additional.8.stripquotes=TRUE
wrapper.java.additional.9="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
wrapper.java.additional.9.stripquotes=TRUE
它不起作用,因为引号围绕着所有内容,而stripquotes仅适用于linux系统。
理论上,正确的条目应该是:
wrapper.java.additional.8=-Djava.endorsed.dirs="C:/Program Files/OurApp/tomcat/common/endorsed"
wrapper.java.additional.8.stripquotes=TRUE
wrapper.java.additional.9=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n
第二个例子不需要引号 - 没有空格来分解它。 第一个例子是 - 因为“程序文件” 我在这次评估中是否正确?
如果是这样,应用程序如何/为何如此工作?表面上有几个参数设置如此(嵌套在qutoes中),我认为实际上没有效果 例如最小/最大内存设置。
我发现了一个示例here,它具有相同的功能,表面上是Windows和Linux的配置。
我的问题:
这些引号会阻止配置命令通过吗?
如果是这样的话,为什么应用程序会起作用?
答案 0 :(得分:3)
在更多地玩游戏并拖拽调试日志之后,我想我已经解决了这个问题。 问题是混合的 1 - 懒惰并将两个配置项放在同一行上。 (在我的辩护中,我将其复制为the Tomcat FAQ中的一行 2 - 使用引号
这两者的结合导致了这个问题。
wrapper.java.additional.9="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
wrapper.java.additional.9.stripquotes=TRUE
像这样生成一个命令行:
java "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n" ...
它将整个字符串视为一个参数 - 而不是我想要的那两个。
没有引号 wrapper.java.additional.9 = -Xdebug -Xrunjdwp:transport = dt_socket,server = y,address = 9135,suspend = n wrapper.java.additional.9.stripquotes = TRUE 它会生成:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n ...
看到没有引号搞砸了,它会像我希望的那样处理两个-X参数。 甚至更好(也可能是预期用途)作为两个单独的条目
wrapper.java.additional.9="-Xdebug"
wrapper.java.additional.9.stripquotes=TRUE
wrapper.java.additional.10="-Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
wrapper.java.additional.10.stripquotes=TRUE
java "-Xdebug" "-Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n" ...
每个都有引号,它会单独处理它们。 现有条目都很好,因为它们每行只设置一个项目。
所以我只是把它归结为一种学习经历(叹息),并意识到我现在对以前不知道的wrapper.conf了解了很多。
干杯, evnafets
答案 1 :(得分:1)
我通过* .bat文件在Eclipse中使用远程调试。可能对你来说更简单。
要完成的步骤:
使用
等内容创建debug.bat文件设置JPDA_ADDRESS = 8000
设置JPDA_TRANSPORT = dt_socket
致电catalina.bat jpda start
如果您输入的端口已经出现错误,请将8000更改为其他任何端口(8001,8002等)。
从Eclipse方面:
答案 2 :(得分:0)
如果您还在寻找另一种解决方案,我会为tomcat6w.exe拍摄,该对话框应用程序用于配置Windows服务(在tomcats bin目录中可用)。我相信有一些选项可用于设置jvm参数,如你所说。这些选项将转到注册表,配置服务。