gpt4 book ai didi

java - 使用 GAE servlet 为 JavaWS 提供动态 JNLP 和 jar

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:57 24 4
gpt4 key购买 nike

当我尝试动态分发 jar/jnlp 时遇到了几个问题。我的所有文件都是使用 http://www.mywebsite.com/ServeFile?name=xxx 动态提供的对于文件 xxx.我可以正确下载文件。

当我将 jnlp 的链接放入浏览器并下载时,javaws 出现错误,显示找不到 jar 文件。 GAE 日志文件显示 javaws 尝试加载 /ServeFile.pack.gz?name=test__V1.0.jar,因此它不是由 ServeFile servlet 提供服务,而是由/(这是另一个 servlet)提供服务

这是我的 jnlp 文件部分内容:

<resources>
<j2se version="1.6+"/>
<jar href="ServeFile?name=test.jar" main="true" version="1.0"/>
<property name="jnlp.packEnabled" value="true"/>
<property name="jnlp.versionEnabled" value="true"/>
</resources>

我的问题是javaws如何将.pack.gz放入url中间,而不是仅仅在请求中放入AcceptEncoding?动态提供 jnlp 和 jar 的正确方法是什么?

更新

使用“静态”类型链接(例如http://website.com/path/file.jar)而不使用?file=file.jar时解决了问题。我还有一个问题:

新问题

JavaWS 有时会放入 ?version-id=1.0 并且我的动态 url 也使用类似的模式,如 ?folder=root&user= guest。因此 version-id 将变为 1.0?folder=root

如果我输入&folder=root&user=guest,它会工作,但javaws有时会请求myjar__V1.0.jar&folder=root,所以现在文件名有myjar_ V1.0&folder=root,这是错误的。这并不一致。

暂时,我可以解析这个版本ID,看看它是否包含问号。希望有更好的解决方案。

最佳答案

在 GAE 上,考虑将文件放入 blobstore 并使用 blobstore 服务来提供它们。

Blobstore 可以提供任何二进制文件

https://developers.google.com/appengine/docs/java/blobstore/overview

关于java - 使用 GAE servlet 为 JavaWS 提供动态 JNLP 和 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com