4

我正在使用 tomcat 来提供 webstart 应用程序。我有一个 servlet,它根据发送到 tomcat 的 url 写出一个 jnlp,以允许将参数传递给 main。当请求没有查询字符串的 jnlp 时,我看到 tomcat 提供了一次 jnlp,但是一旦我向 url 添加查询字符串,我看到 tomcat 提供了两次 jnlp:

0:0:0:0:0:0:0:1 - - [08/Nov/2012:09:10:44 -0600] "GET /javastart/testapp.jnlp HTTP/1.1" 200 2062

对比

0:0:0:0:0:0:0:1 - - [08/Nov/2012:09:01:48 -0600] "GET /javastart/testapp.jnlp?56 HTTP/1.1" 200 2103
127.0.0.1 - - [08/Nov/2012:09:01:48 -0600] "GET /javastart/testapp.jnlp HTTP/1.1" 200 2062

如果我删除 jnlp 元素的 href 属性,则不会发生这种情况。这让我相信 webstart 出于某种原因再次请求 jnlp 文件。这是正确的吗?如果是这样,为什么?

4

1 回答 1

1

我找不到关于此的可靠文档,但似乎这与 jnlp 标记的 href 属性以及 webstart 如何确保它具有最新的 jnlp 密切相关。如果生成的 jnlp 中的 url 与用于初始请求的 url 不匹配,webstart 将使用刚刚下载的 jnlp 的 jnlp 标签中的 url 再次请求 jnlp。在我们的设置中,jnlp 标记中的 href 属性是静态的,并且不会生成以匹配在查询字符串中传递的属性。由于给定 webstart 的 jnlp url 与它在 jnlp 中找到的 url 不同,它再次请求 jnlp 但没有查询字符串。

于 2013-04-04T17:19:41.550 回答