编程语言
首页 > 编程语言> > java-Tomcat服务:wrapper.conf中的引号

java-Tomcat服务:wrapper.conf中的引号

作者:互联网

我想从Eclipse设置远程调试. Tomcat在Windows上作为服务运行.

那一点很好,一个快速的Google向我指出了要添加到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

它没有用,因为引号引起了一切,并且带引号仅适用于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的配置.

我的问题:
这些引号会阻止config命令执行吗?
如果是这种情况,为什么该应用程序可以正常工作?

解决方法:

在更多地玩转并浏览调试日志之后,我认为我已经隔离了该问题.
问题是
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

标签:windows-services,tomcat,java
来源: https://codeday.me/bug/20191107/2004315.html