2009-03-05 50 views
3

我想從Eclipse設置遠程調試。 Tomcat在Windows上作爲服務運行。Tomcat服務:wrapper.conf中的引號

這一點很好,一個快速谷歌指出我正確的設置添加到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

你使用什麼包裝?這是tanukisoft包裝? – erickson 2009-03-05 06:39:29

+0

是的,它是tanukisoft包裝紙。那似乎是那裏最主要的一個。 – evnafets 2009-03-05 19:41:20

回答

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:運輸= dt_socket,服務器= Y,地址= 9135,暫停= 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

我在Eclipse中通過* .bat文件使用遠程調試。可能它會是更簡單的方法給你。

步驟來完成:

  1. 下載Tomcat安裝在zip文件,並將所有文件複製到bin文件夾
  2. 創建這些內容debug.bat文件作爲

    集JPDA_ADDRESS = 8000

    set JPDA_TRANSPORT = dt_socket

    call catalina.bat jpda start

如果您會看到端口已被使用的錯誤,請將8000更改爲任何其他(8001,8002等)。

在Eclipse方面:

  1. 打開調試對話框
  2. 新的遠程Java應用程序(連接選項卡:主機 - 本地主機或任​​何其他IP地址,端口 - 8000; 源選項卡:將所有的源文件(例如刪除所有,添加Java項目,選擇所有項目)
  3. 推調試
  4. 設置斷點在Eclipse中,並嘗試從Tomcat
0

如果你還在尋找另一種解決方案,我會打一槍換tomcat6w.exe,對話框應用程序來配置Windows服務(在雄貓bin目錄)。正如你所說,我相信有一些選項可用來設置jvm參數。這些選項將進入註冊表,配置服務。