2011-09-28 121 views
1

我想使用Java Web Start(JNLP)部署Web應用程序(* .war)。我的首要條件是我有一個正在運行的已配置的Tomcat 6.0服務器在客戶端可用。 在tomcat的正常部署對我來說很清楚。只需將* .war文件放入webapps文件夾並重新啓動tomcat即可完成。使用Java Web Start(JNLP)部署* .war應用程序

如果我想要與JNLP相同,它看起來很複雜。我在想下面的JNLP:

<?xml version="1.0" encoding="utf-8"?> 
<!-- JNLP File for JimageConnect.com JTwacker Application --> 
    <jnlp codebase="file:///local_installer"> 
<information> 
    <title>War deployment</title> 
    <vendor>Vendor</vendor> 
    <description>long </description> 
    <description kind="short">short</description> 
    <offline-allowed/> 
</information> 
<security> 
     <all-permissions/> 
    </security> 
<resources> 
    <jar href="deployment.jar"/> 
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
</resources> 
<application-desc main-class="com.vendor.deployment.Deploy" /> 

其中deployment.jar認爲:

- )應部署

的* .war文件 - 這是需要)的一切使用命令行重新部署web應用程序描述在http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#Executing_Manager_Commands_With_Ant

- )類Deploy它讀取* .war作爲流從clas sloader併爲tomcat執行取消部署/部署。

溶劑應該可以工作,但它看起來手工製作,而且看起來很醜。有更好的解決方案嗎?

+1

爲什麼要使用webstart進行部署?無論如何,如果必須有現有的Tomcat,爲什麼不只需要用戶部署應用程序呢?如果是自動更新,我會嘗試查看其他更新機制。 – Thomas

+0

我的場景如下所示:我有遍佈全國的8000多個客戶端,它們都有一個正在運行的tomcat實例。所有這些客戶端可能都在防火牆後面,無論如何。所以我認爲我沒有可能直接部署Web應用程序。由於我還通過JNLP推出了一些其他客戶端功能(Swing GUI),這也是我第一次使用JNLP來推出我的Web檔案。 – gerhard

+1

1)所示的JNLP無效。 2)JWS用於啓動富客戶端應用程序,而不是Web應用程序。 3)JWS能夠調用安裝程序(然後可以安裝'web-app'),但我懷疑這比直接將用戶引用到安裝程序有什麼優勢。 –

回答

1

我通過創建客戶安裝程序來解決問題,該安裝程序安裝了我的Tomcat服務器,甚至正確處理了UAC。 如果需要,另一個工具部署我的應用程序。