运行重复的JavaWS应用程序

时间:2015-05-08 16:21:21

标签: java java-web-start jnlp

摘要:如何在同一台计算机上运行重复的JavaWS应用程序(它们来自相同的源代码但使用单独的数据)?

我在客户端站点上运行了旧版本的应用程序。我对应用程序进行了升级并部署了(使用不同的数据库,战争,服务器等),并且希望能够让用户在他们的计算机上同时下载和运行这两个应用程序。由于应用程序基本上彼此独立,因此不应存在重叠数据的问题。但是,.JNLP文件将下载新应用程序并覆盖旧应用程序 - 反之亦然。我们希望两者同时运行,以便生产不会停止,并且他们可以在将最新的应用程序切换到生产之前测试的改进功能。

我更改了新应用程序的名称,以及JNLP文件中的开始菜单名称​​ ,但它们仍然相互覆盖。我想这个问题中有一个子问题: Java如何/在哪里确定通过Web start下载/安装的应用程序已经存在? 我的猜测是它来自大班的名字。

由于

MIS.JNLP供参考:



<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for Foo Registration Application -->
<jnlp
  spec="1.7+"
  codebase="http://foo:8080/mis"
  href="mis.jnlp">
  <information>
    <title>MIS TEST</title>   <!-- Original: 'MIS' -->
    <vendor>Foo Inc.</vendor>
    <description>Bar MIS System</description>
     <shortcut online="false">
      <desktop/>
      <menu submenu="FooBar MIS TEST"/> <!--Original: 'FooBar MIS' -->
    </shortcut>
  </information>
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.7+" java-vm-args="-client"/>
     ... 
  </resources>
  <application-desc main-class="FooMainApp"/>
</jnlp>
&#13;
&#13;
&#13;

解决方案(感谢Vic在下面的评论中):

我必须更改我的构建,以便创建具有不同名称的.war。此外,更改了JNLP名称,以及指向jnlp的.html文件中的链接。这些东西的组合允许重复的应用程序同时运行。

1 个答案:

答案 0 :(得分:1)

每个Oracle文档&#34; JNLP客户端(例如Java Web Start)下载的每个JAR文件都使用URL唯一标识。如果两个JNLP文件使用相同的URL,则该资源将仅下载一次并共享。这类似于Web浏览器使用的缓存实现&#34;