2017-02-09 87 views
1

我們有一個應用程序將部署在具有不同IP的多個服務器上。 JNLP在構建時生成。 因此,我們定義的JNLP沒有基本代碼:如何在沒有代碼庫的情況下使用JNLP?

<jnlp spec="1.0+" href="app.jnlp"> 

然而,從這個應用的第二時間(這是第一個啓動時創建桌面圖標)的代碼庫設置爲本地文件系統時,這是絕對沒用。 我希望Java Webstart在第一次啓動應用程序時將代碼庫設置爲實際的起始地址。這似乎不是真的。

我該如何準備一個通用的JNLP,可以在不同的服務器上修改而無需修改?

+0

如果你正在生成它,爲什麼不爲每個服務器生成一個單獨的.jnlp文件? – VGR

+0

@VGR它在構建時生成。在構建時,我們不知道目標服務器的IP地址。他們甚至可能隨着時間而改變。 – radlan

+1

服務器運行什麼軟件?如果它是一個servlet容器(Tomcat,GlassFish等),則可以動態地提供.jnlp內容。 – VGR

回答

0

JnlpDownloadServlet在JDK的樣品/ JNLP/servlet的目錄可用,可用於生成從在運行時的模板的JNLP,插入正確的代碼庫例如:

<jnlp spec="1.0+" codebase="$$codebase" href="app.jnlp"> 

Mojohaus提供一個Maven化包的小服務器here

您還需要在簽名的主jar中提供JNLP-INF/APPLICATION_TEMPLATE.JNLP文件。這與你的app.jnlp重複,但有一個星號爲$$代碼庫:

<jnlp spec="1.0+" codebase="*" href="app.jnlp"> 
相關問題