使用$$上下文无法在java 7.45中工作的JNLP签名

时间:2013-11-18 20:08:15

标签: java jnlp

我有一个具有codebase =“$$ context”的JNLP

在签署JAR之前,我通过将JNLP作为JNLP-INF / APPLICATION.JNLP放入JAR来签署JNLP。

启动应用程序时,我得到“字段代码库在签名的启动文件中有一个无效值:$$ context”。

在浏览器中启动的主要JNLP中的$$上下文被替换为ok并且有效。签名的JAR文件中的jnlp显然没有被替换,因此无效。我如何协调这个?

由于

1 个答案:

答案 0 :(得分:0)

APPLICATION.JNLP不应包含codebase =“$$ context”。 它必须包含确切的代码库。 (见jnlp specification

然而,有一种情况是代码库是动态的。在这种情况下,您应该使用APPLICATION_TEMPLATE.JNLP并在codebase属性中加上'*'。

$$上下文由JNLPDownloadServlet使用,它在运行时生成jnlp,但是对于签名的JNLP,这是非常有问题的,因为生成的jnlp必须完全与签名中的相同jar(除了'*')。

解决方法是使用一个servlet从签名的jar中提取APPLICATION_TEMPLATE.JNLP,用正确的代码库替换'*',并将其返回给浏览器。