Redian新闻
>
java web start的奇异问题
avatar
java web start的奇异问题# Java - 爪哇娇娃
b*i
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
总之,麻烦。
avatar
z*e
2
没有必要用servlet啊
直接做jnlp,然后放到页面上,让客户直接点击链接下载就好了
链接应该是这样http://abc.com/webstarts/yourwebstart.jnlp
但是要在web.xml里面调整url-mapping,要不然这个可能被转跳到某一个servlet上去
如果实在说是需要用servlet,那就自己写response,然后在response里面写jnlp的内容
也就是回到jsp出现之前的那种最原始的方式
我觉得如果不是动态的jnlp,没有必要写response
avatar
b*i
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

avatar
z*3
4
用freemarker写好jnlp模板
然后往里面塞参数就行了
你可以把把*.jnlp加到xml模板里面去
这样就可以validate了,有兴趣可以自己加dtd什么的

【在 b***i 的大作中提到】
: 我要动态传参数进jnlp里面,比如,user=$username
: 这样,我动态的jnlp就动态生成,把username给实现了,这样就传参数给jar了。
:
: 内容

avatar
z*3
5
比如
user=$username
这么写
user=${username}
不过你这个argument有些不对吧
这个argument是main函数的那个string[] args
所以不需要user=
直接用
${username}
就好了
或者用property
avatar
b*i
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}
: 就好了

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。