论坛首页 入门技术论坛

[原创]Java Web Start 入门(二)

浏览 11276 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-07-05  
一.搭建支持JWS的Web站点
    1.你的Tomcat已经正常运转
    2.找到TomcatHOME/conf下的web.xml文件,在其中添加 application/x-java-jnlp-file 以支持JNLP文件.
 
二.部署应用程序
    1.开发你希望发布的应用程序
    2.把应用程序及所用到的所有资源打成一个或多个jar包
    3.如果你的应用程序不会用到任何运行这个应用程序的机器的本地资源,那么,你的应用程序就可以部署了。
    4.如果你的应用程序用到了运行这个应用程序的机器的本地资源,那么,你的应用程序就必须先签名然后才可以发布。
    5.如何给应用程序签名
        A.首先确保你已经完全安装了Java2的环境,有keytool工具,它位于J2SE SDk的bin目录下。这一般不会有问题。
        B.到Dos状态下,进入你需发布应用程序的jar包所在的目录,运行下面这句话
           keytool -genkey -keystore myKeystore -alias jwstest
           它将会提示你输入用户名、密码等,不用理它,按照提示随便输入即可,但一定要记住密码。运行结束它将会在当前路径下创建名为myKeystore的文件。
        C.如果你想察看一下刚才生成的myKeystore文件的内容,可以使用下面这句话,再输入密码:
           keytool -list -keystore myKeystore
           显示出来应该类似如下:                
              Keystore type: jks
              Keystore provider: SUN
              Your keystore contains 1 entry:
              jwstest, 2006-7-12, keyEntry,
              Certificate fingerprint (MD5): D7:CE:DD:5C:EC:78:92:B3:9E:51:88:A6:1E:4E:94:9C
        D.对你需发布应用程序的jar包进行签名,运行下面这句话:
           jarsigner -keystore myKeystore yourtest.jar jwstest
           其中yourtest.jar是你的jar包名,你需要修改它,别的就不必修改了。运行时会提示你输入密码,就是你刚才在生成myKeystore文件时设定的密码。
    6.部署应用程序。
        把已经经过签名的jar包拷入Web工程的目录下(注意:不能拷到WEB-INF目录下!)
 
三.JNLP文件
    1.下面我们来编写JWS的核心配置文件JNLP,有了它,才能将以上各部分联系起来,真正让JWS运转起来。JNLP文件符合标准的XML语法,实质就是一个XML文件。当然,编写它
的最好方式是对已写好的JNLP进行改写。JWSTest.jnlp示例如下:
xml 代码
  1. <!---->xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <jnlp spec="1.0+" codebase="http://192.168.1.106:8000/jwsTest/" href="jwsTest.jnlp">  
  4.     <information>  
  5.         <title>JWS Testtitle>  
  6.         <vendor>Silent Wongvendor>  
  7.         <homepage href="http://silent" />  
  8.         <description>JWS Testdescription>  
  9.         <icon kind="png" href="eclipse48.png" />  
  10.         <offline-allowed />  
  11.     information>  
  12.     <security>  
  13.         <all-permissions />  
  14.     security>  
  15.        
  16.     <resources>  
  17.         <jar href="startup.jar" />  
  18.         <jar href="plugins/MyPlugin_1.0.0.jar" />  
  19.         <jar href="plugins/org.eclipse.core.commands_3.1.0.jar" />  
  20.         <jar href="plugins/org.eclipse.core.expressions_3.1.0.jar" />  
  21.         <jar href="plugins/org.eclipse.core.runtime_3.1.2.jar" />  
  22.         <jar href="plugins/org.eclipse.help_3.1.0.jar" />  
  23.         <jar href="plugins/org.eclipse.jface_3.1.1.jar" />  
  24.         <jar href="plugins/org.eclipse.osgi_3.1.2.jar" />  
  25.         <jar href="plugins/org.eclipse.swt.win32.win32.x86_3.1.2.jar" />  
  26.         <jar href="plugins/org.eclipse.swt_3.1.0.jar" />  
  27.         <jar href="plugins/org.eclipse.ui.workbench_3.1.2.jar" />  
  28.         <jar href="plugins/org.eclipse.ui_3.1.2.jar" />  
  29.            
  30.         <property name="eclipse.product" value="MyPlugin.MyPlugin"/>  
  31.            
  32.     resources>  
  33.        
  34.     <resources os="Mac">  
  35.         <j2se version="1.5+" java-vm-args="-XstartOnFirstThread"/>  
  36.     resources>  
  37.     <resources os="Windows">  
  38.         <j2se version="1.5+"/>  
  39.     resources>  
  40.     <resources os="Linux">  
  41.         <j2se version="1.5+"/>  
  42.     resources>  
  43.        
  44.     <application-desc main-class="org.eclipse.core.launcher.WebStartMain">  
  45.         <argument>-nosplashargument>  
  46.     application-desc>  
  47. jnlp>  

 


    2.部分JNLP的关键语法
        <jnlp>元素
            spec:必须是1.0及以上版本,这里用1.0+,不需修改。
            codebase:资源的URL,是JNLP指向各连接的起始处,需自行修改。
            Href:JNLP文件相对codebase的存放位置,和JNLP文件的全名,需自行修改。

        <infomation>元素
            Title:发布的应用程序简单标题,需自行修改。
            Vendor:发行商信息,可以写上你的大名,需自行修改。
            Homepage:存放有关应用程序的相关文档的URL,如help文件等,可有可无。
            Description:对应用程序的描述,可以有多对<description></description>,可有可无。
            Icon:用户下载你的应用程序后,在JWS里显示的图标的URL,应是gif或jpeg格式。需自行修改。
            Offline-allowed:选择项,允许用户离线运行应用程序,一般都会有,不用修改。

        <security>元素
            选择项,如果没有指明<security>,默认是不允许应用程序访问用户的本地资源,即应用程序是沙箱运行。
            如果设定为<all-permissions/>,则表示允许应用程序访问用户的本地资源。一般都会设定此值。

        <resource>元素
            <j2se version = 指定jdk版本>
            <jar href = 指定需发布的应用程序的jar包存放的位置>
       
        <application-desc>元素
            main-class:应用程序运行启动的主类
            <argument>:应用程序运行时的参数,可以有多个,每一个参数用一对<argument>参数</argument>。

四.Jsp页面
    1.编写用于Web访问的页面加入如下:
        <%
          String path = request.getContextPath();
          String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
        %>
        <a href="<%=basePath + "jwsTest.jnlp"%>">launch</a>

五.完整发布和测试
    前面我们已经准备好了需发布的应用程序的jar包,也写好了用来访问的jsp文件和服务器端的核心jnlp文件。
    至此,我们已经完成得七七八八了,剩下只需将Web工程发布到tomcat上,再打开IE......

(注意: 因为本网站Formatter的问题,帮将"<" ">" 改为 < >)

   发表时间:2007-07-05  
JNLP Tags - Quick Reference:

http://lopica.sourceforge.net/quick.html
0 请登录后投票
   发表时间:2007-07-27  
多谢分享
来个tip:若是启动时出现Required field missing from jnlp时,最好用eclipse察看jnlp文件(我试了ue notepad都不行)文件头会多出来莫名其妙的字符 删掉它就可以了
按照步骤做下来 就被这个问题困扰好久
0 请登录后投票
   发表时间:2008-06-02  
ths 挺详细:)
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics