我有一个具有codebase =“$$ context”的JNLP
我在签署JAR之前将JNLP作为JNLP-INF / APPLICATION.JNLP放入JAR中签名 .
启动应用程序时,我得到“字段代码库在签名的启动文件中有一个无效值:$$ context” .
在浏览器中启动的主要JNLP中的$$上下文被替换为ok并且有效 . 签名的JAR文件中的jnlp显然不会被替换,因此无效 . 我如何调和这个?
谢谢
APPLICATION.JNLP不应包含codebase = "$$context" . 它必须包含确切的代码库 . (见jnlp specification)
但是,有一种情况是代码库是动态的 . 在这种情况下,您应该使用APPLICATION_TEMPLATE.JNLP并在codebase属性中加上'*' .
该$$上下文由产生在运行时一个jnlp一个JNLPDownloadServlet使用,但用于签署JNLP的,这是很成问题,因为这产生JNLP必须 exactly 一样的一个在签名的jar(除了'*') .
解决方法是使用一个servlet从签名的jar中提取APPLICATION_TEMPLATE.JNLP,用正确的代码库替换'*',并将其返回给浏览器 .
1 回答
APPLICATION.JNLP不应包含codebase = "$$context" . 它必须包含确切的代码库 . (见jnlp specification)
但是,有一种情况是代码库是动态的 . 在这种情况下,您应该使用APPLICATION_TEMPLATE.JNLP并在codebase属性中加上'*' .
该$$上下文由产生在运行时一个jnlp一个JNLPDownloadServlet使用,但用于签署JNLP的,这是很成问题,因为这产生JNLP必须 exactly 一样的一个在签名的jar(除了'*') .
解决方法是使用一个servlet从签名的jar中提取APPLICATION_TEMPLATE.JNLP,用正确的代码库替换'*',并将其返回给浏览器 .