Java Web Start 实现关键 (转)

Java Web Start 实现关键 (转)[@more@]
 实现 Java web Start可能需要注意下面的问题:
 
 1. jdk1.4版本中已经自带了Java Web Start,但还需要手工找到JDK1.4的目
  录运行其中的javaws*** 安装 文件来安装Java Web Start.安装后会出现如
  d:program filesJava Web Start的目录,注意以后在网上运行Java
  Web Start的 程序后都会将程序 下载到该目录的.javaws/cache目录下。
 
 2. 要注意 配置web sever,例如采用JRun就需要配置Web application --&gt Demo --&gt MIME Type Map ping,在其中要增加新的MIME类型:
  jnlp  :  application/x-java-jnlp-file
  jar :  application/x-java-jnlp-file
  其他的web sever如 tomcat,可能要手工修改web. XML文件,增加如下:
  
  application/x-java-jnlp-file
 
  如果不进行上面的配置就直接在 浏览器中运行*.jnlp文件就只会显示*.jnlp中的文本,其实上面的过程就相当于给.jnlp后缀加上关联,确保在浏览器中能返回正确的MIME类型。
 
3. JNLP文件的格式
===================================
 ' 指定 j2se版本1.0,'UTF-8'为编码格式,这个代码一般不需要改动.  
<?xml version="1.0" encoding="UTF-8"?>
 ' 指定server端的主目录
http://localhost:8100/demo/JavaWebStart">
 
  ’设置一些信息,包括:标题、提供商、描述、主页等
  MyIE
  RookieSoft Corporation
  My ie just demo how to program with jnlp.
  http://localhost:8100/demo/JavaWebStart" />
 
 
 
 
‘ 有的时候还需要设置 安全规则,如all-pe Rmission表示允许所有操作,包括本地文件访问等,这里不需要设置.

 sources>
  ' 指定j2se版本
 
 ’指定要下载到本地的jar文件(注意,所有的文件都需要打包才能够下载)
 
 
  ' 指定运行时的main class
 
  ' 还可以指定运行的参数,可以有多个参数,并列的书写就可以了.
 arg1
 
===================================
 
 
 
** 下载资源错误
 
 在使用Java Web Start的时候可能会出现"下载资源错误",大致的出错信息如下:
 
  *******************************************************
  JNLPException[category: DOWNLOAD Error : Exception:
  java.io.IOException:
  rename failed in cache : LaunchDesc: null ] at.....
  *******************************************************
 
  这个错误的原因是因为每次 调用Java Web Start都会到server上查找程序是否 更新,然后将程序下载到本地的java web start目录下的cache目录中,如果cache中
  已经有同名文件,而且该文件正在被使用,那么新下载的文件就会出现 rename failed错误,而且手工去删除本地的文件还会报错:文件正被使用!,这里涉及到Java
  Web Start中的sign机制,可能对每个jar文件都需要标记,有的时候会在任务管理器中看到javaw.exe在运行,将该程序终止后就可以将本地的jar文件删除掉,说明这
  些本地文件可能还保留着文件锁定吧!有时即使将Task Manager中将所有的java程序都kill掉还是会出错,必须要注销 windows才可以,不知道是不是Java Web Start
  自身的问题.
 
** argument
  如果需要给*.jar文件传递参数,可以用如下代码:
 
  -port
  1008  ' 要注意-port 和1008是两个参数,要分开写.
 
 
** jws console
  有的时候还需要看到*.jar中System.out.print语句输出的信息,就要打开jws的console,可以在jws manager 中的首选项中设置.
 
 
** security
  java web start中对本地文件操作、访问 远程 数据库等操作都进行了安全限制,如果要实现这些操作,一般要在jnlp中增加代码:
 
   
 
  以上代码表示允许所有的操作,但要实现这一点,还需要对*.jar文件进行sign操作,也就是安全签名,可采用
  jdk中自带的keytool和jarsigner工具来进行签名,步骤如下:
 
** keytool
  例如:keytool -genkey -alias MySelf -keypass 888888
  ' -alias 表示产生一个化名,要记住这个化名,后面要用到
  ' -keypass 输入一个密码就可以了
 
  一般会产生keystore文件,keytool还有一些其他选项,可以在console中查看帮助.
 
** jarsigner
  例如:jarsigner -alias MySelf ***.jar
 jarsigner表示对jar程序进行签证.只有经过签证的程序才可以设置all-permissions属性。
 
** 根 认证
  jws manager中的首选项中还可以选择根认证.
 
**  Certificate
  jarsigner中默认采用了RSA和DSA的 加密算法,有些公司也希望能自己购买Certificate文件,不过两种方式都应该可以运行,一般第一次运行java web start程序
  时会弹出对话框要 用户确认是否承认该认证。
 
**  最后说明
  因为对JWS也是一个新手,所以很多问题也只是表面的认识,如果有表达不当或理解肤浅的地方,请多包涵.
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-958253/,如需转载,请注明出处,否则将追究法律责任。

user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%><%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%>
<%}%>

转载于:http://blog.itpub.net/10748419/viewspace-958253/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值