b***i 发帖数: 3043 | 1 我用java webstart作客户端的RIA。假定我这个程序叫good.jar。我用动态网站
servlet http ://dynamics.com/serve?filename=good.jar&folder=root&user =guest
问题是,我用jnlp这个文件放codebase,放jar, java webstart有的时候会把?
version-id=1.0放进链接,就出了问题,变成两个问号
http ://dynamics.com/serve?filename=good.jar?version=1.0&folder=root& user=
guest
有的时候又把pack.gz(压缩)放进去。放的时候,会把pack.gz放第一个问号前面
http ://dynamics.com/serve.pack.gz?filename=good.jar?version-id=1.0&folder =
root&user=guest
我现在可以用servlet直接读取servletPath,用
http: //dynamics.com/serve/good.jar.pack.gz?version-id=1.0?folder=root& user
=guest
为什么我要在folder前放问号呢?因为我保不准java ws会不会把version放进文件名变成
http:// dynamics.com/serve/good__V1.0.jar.pack.gz?folder=root&user=guest
总之,麻烦。 |
z****e 发帖数: 54598 | 2 没有必要用servlet啊
直接做jnlp,然后放到页面上,让客户直接点击链接下载就好了
链接应该是这样http://abc.com/webstarts/yourwebstart.jnlp
但是要在web.xml里面调整url-mapping,要不然这个可能被转跳到某一个servlet上去
如果实在说是需要用servlet,那就自己写response,然后在response里面写jnlp的内容
也就是回到jsp出现之前的那种最原始的方式
我觉得如果不是动态的jnlp,没有必要写response |
b***i 发帖数: 3043 | 3 我要动态传参数进jnlp里面,比如,user=$username
这样,我动态的jnlp就动态生成,把username给实现了,这样就传参数给jar了。
内容
【在 z****e 的大作中提到】 : 没有必要用servlet啊 : 直接做jnlp,然后放到页面上,让客户直接点击链接下载就好了 : 链接应该是这样http://abc.com/webstarts/yourwebstart.jnlp : 但是要在web.xml里面调整url-mapping,要不然这个可能被转跳到某一个servlet上去 : 如果实在说是需要用servlet,那就自己写response,然后在response里面写jnlp的内容 : 也就是回到jsp出现之前的那种最原始的方式 : 我觉得如果不是动态的jnlp,没有必要写response
|
z*******3 发帖数: 13709 | 4 用freemarker写好jnlp模板
然后往里面塞参数就行了
你可以把把*.jnlp加到xml模板里面去
这样就可以validate了,有兴趣可以自己加dtd什么的
【在 b***i 的大作中提到】 : 我要动态传参数进jnlp里面,比如,user=$username : 这样,我动态的jnlp就动态生成,把username给实现了,这样就传参数给jar了。 : : 内容
|
z*******3 发帖数: 13709 | 5 比如
user=$username
这么写
user=${username}
不过你这个argument有些不对吧
这个argument是main函数的那个string[] args
所以不需要user=
直接用
${username}
就好了
或者用property
|
b***i 发帖数: 3043 | 6 参数我还没试,应该没问题。然后我可能把所有参数放进argument列表。就是那个?
version-id=1.0还有.pack.gz有些困扰。所以需要servlet不用?来传入文件名这个参数
。就是http: //myweb.com/good.jar
其根本问题在于我实现了一个文件发布系统CDN,带着版本的,?rev=AB来表示版本AB。
这样jar的链接变成http: //myweb.com/good.jar?rev=AB。如果用static文件,我不知
道如何让gae持续运行的同时我上载文件。我的目的是上载文件不造成网站暂时停工。
目前情况java webstart会可能把版本1.0,和pack.gz加入,变成http: //myweb.com/
good.jar.pack.gz?version-id=1.0?rev=AB,结果verion-id=1.0?rev=AB。容易解决倒
是。就是我希望?单独做url参数的隔离符号,不需要&。像我这样,java webstart多加
了一个?,就出了问题。
【在 z*******3 的大作中提到】 : 比如 : user=$username : 这么写 : user=${username} : 不过你这个argument有些不对吧 : 这个argument是main函数的那个string[] args : 所以不需要user= : 直接用 : ${username} : 就好了
|