Windows-Server-2012-R2

<jvm-arg> 未添加到 Resin 4、Windows Server 2012 上的 JVM

  • March 18, 2016

我們正在從 Linux (Ubuntu) 遷移到 Windows Server 2012R2(不要問!)並且遇到了 Resin 的設置問題:

使用打包setup.exe工具安裝 Resin 4 Pro,resin.exe創建為 Windows 服務就好了。它啟動並能夠部署配置為&lt;host&gt;’s in 的webapps resin.xml。但是我們有一些依賴於 JVM 環境變數的應用程序。在 Linux 上也配置了這些resin.xml,例如:

&lt;jvm-arg&gt;-Dsome.secret.domain=very.secret.com&lt;/jvm-arg&gt;

但似乎這些在啟動 Resin 作為服務時***根本沒有添加到 JVM 參數列表中。***我們的conf文件的結構是

&lt;cluster id="app-tier"&gt;
   &lt;server-multi ... /&gt;
   &lt;server-default&gt;
       &lt;jvm-arg&gt;
       ...

   &lt;host&gt;
   ...

我的理解是這是正確的(它對應於我們的 Linux 設置)。

嘗試使用手動啟動 Resin

java -jar resin.jar start

不會改變任何東西(甚至明確添加-conf resin.xml完整路徑)。將 JVM 參數顯式添加到該語句中是可行的,但是 - 奇怪的是 - 它們隨後在看門狗 JVM 程序命令行上出現兩次,在 Resin JVM 上出現四次!

歡迎任何想法 - 當然,我也在聯繫 Caucho。

經過多次配置編輯和重新啟動後,XML 配置中的順序****很重要

因此移動&lt;server-multi .../&gt;下面的&lt;server-default&gt;部分解決了這個問題:

&lt;cluster id="app-tier"&gt;
   &lt;server-default&gt;
       &lt;jvm-arg&gt;
       ...

   &lt;server-multi ... /&gt;

   &lt;host&gt;
   ...

來自Caucho的 Alex Rojkov 證實了這一點:

是的,順序很重要。一次讀取並執行配置。亞歷克斯

乾杯,

引用自:https://serverfault.com/questions/764111