IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Open source  >

使用 Java Web Ststar 部署基于 Eclipse 的应用程序

实现简单地部署定制产品

developerWorks
前一页第 7 页,共 12 页后一页

文档选项

样例代码


对本教程的评价

帮助我们改进这些内容


JNLP 文件

在本节中,您将构建和发布您的 JNLP 文件。然后,您将测试部署并执行任何必要的故障诊断。

构建 JNLP 文件

现在,您应该已经成功将特性导出到某个目录中,并已验证可以通过 Web 服务器访问 features 和 plugins 目录。现在为您的应用程序编写 JNLP 文件。下面给出了 JNLP 文件的一个完整示例。


清单 4. 简单应用程序的示例 JNLP 文件
					
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"  
    codebase="http://localhost/~user/jws2" href="simpleapp.jnlp">
  <information>
    <title>SimpleApp Test</title>
    <vendor>Nathan Good</vendor>
    <homepage href="http://www.nathanagood.com" />
    <description>This is my simple JWS Eclipse 
     application test.</description>
  </information>
  <!--request all permissions from the application. This does not change-->
  <security>
    <all-permissions />
  </security>
  <!-- The name of the main class to execute. This does not change-->
  <application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
  </application-desc>
  <resources>
    <jar href="plugins/org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar"/>
    <extension name="Simple App Feature" 
     href="features/com.nathanagood.examples.simpleApp.feature_1.0.0.jnlp" />
    <property name="eclipse.product" 
     value="com.nathanagood.examples.rcp.simpleApp.plugin.product" />
  </resources>
  <resources os="Mac">
    <j2se version="1.5+" java-vm-args="-XstartOnFirstThread" />
  </resources>
  <resources os="Windows">
    <j2se version="1.4+" />
  </resources>
  <resources os="Linux">
    <j2se version="1.4+" />
  </resources>
</jnlp>

在此 JNLP 文件中,codebase 属性的值设置为在其中发布包装器特性的位置的基本 URL。它应该与图 17 中 Deployable features 窗口的 Java Web start 选项卡中所使用的 URL 相匹配。href 属性是您的 JNLP 文件的名称。

使用 localhost

您可能已经注意到,在本例中,我使用 localhost 作为 URL。它是因为,我使用本地 Web 服务器测试此应用程序,并且实际上没有将我的文件部署到任何位置。如果您计划部署此应用程序,则不能使用 localhost(但使用它进行测试非常好)。确保使用外部可解析的主机名(比如 myhost.example.com)或直接使用 IP 址。

<information> 元素包含与被分发的应用程序相关的标题、描述和其他信息。<security><application-desc> 元素需要与清单保持 4 一致。

修改 <resources> 元素,在其中包含 <jar> 元素的 Equinox 启动程序插件的正确版本。您可能需要在 features 目录中获取启动程序的 JAR 的正确完整名称。随着新版本文件的推出,清单 4 中列出的名称可能很快就会过时。

更新 <extension> 元素的 href 属性,在其中包含包装器特性的 JNLP 文件的 URL(codebase 属性中的 URL)。您包装器特性的 JNLP 文件将包含其他所有需要的特性的特性。

最后,更新 <property> 元素,在其中包含您产品的 ID。此 ID 为插件产品配置文件中的 ID(即 SimpleApp.product)。





回页首


发布 JNLP 文件

现在,您已经创建了 JNLP 文件。您可以从 features 和 plugins 目录导出可部署的部署。特性已经包括您的插件和依赖关系。接下来可以发布 JNLP 文件。

JNLP 文件所在目录与 features 和 plugins 目录相同。它应该是您在导出可部署特性时所使用的相同目录。清单 5 显示了目录清单的一个例子。


清单 5. JNLP 文件的目录清单
					
drwxr-xr-x   20 user  user   680 Dec 19 09:46 features
drwxr-xr-x  280 user  user  9520 Dec 19 09:46 plugins
-rw-r--r--    1 user  user  1222 Dec 19 10:05 simpleapp.jnlp

要简化文件的测试,创建一个简单的 HTML 页面并将它命名为 index.html。它应该包含如清单 6 所示的代码。其中 simpleapp.jnlp 已更新为您 JNLP 文件的名称。


清单 6. 示例 HTML 文件
					
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>My Application</title>
</head>
<body>
<a href="simpleapp.jnlp">My Application</a>
</body>
</html>

将 HTML 文件保存在可以从应用程序主 JNLP 文件中的 URL 访问的文件夹中。将 HTML 文件保存在该目录中之后,目录清单应如清单 7 所示。


清单 7. 目录中的所有文件
					
drwxr-xr-x   20 user  user   680 Dec 19 09:46 features
-rw-r--r--    1 user  user   288 Dec 19 08:37 index.html
drwxr-xr-x  280 user  user  9520 Dec 19 09:46 plugins
-rw-r--r--    1 user  user  1222 Dec 19 10:05 simpleapp.jnlp





回页首


测试部署

现在,您已经:

  • 理解 JNLP 文件的基本结构。
  • 通过合适的 MIME 类型配置了您的 Web 服务器。
  • 在插件项目中构建了一个基本 Eclipse 产品。
  • 拥有一个包含插件的包装器特性项目。
  • 将包装器特性导出到某个目录中。
  • 为您的应用程序创建并保存了一个 JNLP 文件。

现在可以开始测试部署了。打开 Web 浏览器并导航到您为 codebase URL 提供的 URL(例如 http://localhost/~user/jws/)。此时应打开您在 “发布 JNLP 文件” 小节中创建的 index.html。单击链接。只要所有配置正确,就会出现一个 JWS 欢迎屏幕(如图 18 所示)。然后会显示应用程序的下载进度。根据您的特性及插件的最终大小,以及网络连接的状态,此过程可能需要一些时间。


图 18. JWS 欢迎屏幕
JWS 欢迎屏幕

下载完所有依赖关系之后,浏览器将打开应用程序。本例中的简单视图如图 19 所示。


图 19. 通过 JWS 启动的简单应用程序
通过 JWS 启动的简单应用程序





回页首


故障诊断

在构建第一个通过 JWS 部署的 Eclipse 产品示例时,我遇到了一些问题:

  • JNLP 文件以文本形式显示在浏览器中。如果出现这种情况,最可能的原因是 Web 服务器的配置中缺少 JNLP 类型的 MIME 类型关联。确保关联了 MIME 类型(参见 “配置您的 Web 服务器” 小节。
  • 无法启动应用程序。如果 JWS 出现这种情况,单击 Details 获取关于错误的更多信息。如果该错误为 java.io.FileNotFoundException,则有可能是因为 URL 不正确造成的。当我重新命名初始 JNLP 文件,但忘记更新 <jnlp> 元素的 href 属性的值时,我遇到了此错误。
  • 无法加载资源。与之前的错误相似,您需要单击 Details 才能看到此消息。当我尝试在不同的计算机上测试应用程序时,遇到了这个错误。在本例的 URL 中,我使用 localhost 作为主机的名称。要解决此问题,将 URL 更改为 IP 地址或用于发布 JNLP 文件的服务器的主机名。
  • JWS 看上去已经启动,但没有任何内容并且 JWS 是关闭的。造成此问题最有可能的原因是 <resources> 元素中的 eclipse.product 属性的产品 ID 值不正确。检查产品 ID 的值,并确保它与产品配置文件中的 ID 相一致(SimpleApp.product)。




回页首



前一页第 7 页,共 12 页后一页
    关于 IBM 隐私条约 联系 IBM 使用条款