2012-05-10 28 views
2

我得到了很多的麻烦试图发布.war package包含一个Web与构建路径(com.sun.deploy.net.JARSigningException)commons-configuration-1.3.jar启动应用程序的。禁用太阳签署罐子验证

我已经尝试清理javaws缓存,重新安装应用程序,甚至重新安装java (1.6.0_24)

这是我NetBeans IDE 6.8 (Build 200912041610)输出的舒展,同时创造一个JNLP应用:

Warning: 
The signer certificate will expire within six months. 
Signing JAR: D:\Java\workspace\OTP\DeskOTP\atual\build\cluster\modules\ext\commons-configuration-1.3.jar to D:\Java\workspace\OTP\DeskOTP\atual\build\jnlp\app\br-com-petrobras-ep-gedig-gedigdesktoplibrary\ext-commons-configuration-1.3.jar as jnlp 

但是,试图运行时,我得到了JARSigningException这个罐子。

所以,我决定来解决这个禁用此验证。我相信我可以决定并告诉jvm不要验证我的罐子(我的责任)。

有无论如何告诉jvmjavaws从不验证没有签署jars

+0

*“反正有告诉JVM或javaws的以NEVER验证非签署罐子?” *会是什么呢?即使你可以在开发机器上实现它,但你不应该在客户机上做这件事。 –

+0

在Java的某些最新版本中存在一个错误,它们无法正确验证证书,所以在错误得到解决之前,能够绕过特定的'.jnlp'文件将很有用。 – Malvineous

回答

3

作为第一反应,我会说试试java -noverify -jar your_file.jar.

然而,这只会为本地jarfiles中工作。它不会从网络来源工作,这是你想要做的。是对的吗?

+0

是的,我需要一些东西来忽略Web上的验证。将继续在这里尝试。任何成功将张贴在这里。谢谢。 –

+0

我甚至没有得到这个地方文件的工作。我不认为noverify选项控制任何安全验证。 –

0

你总是可以从网络上下载的罐子,手动删除在清单签名部分,它应该工作。如果这个jar恰好是从另一个回复中提到的@Riking动态下载的,那么你可以通过将URL代理到另一个服务器来解决问题。

现在,如果您有权访问部署构建状态并且在构件上过期签名时遇到问题,则可以使用公司的(Petrobras?)签名证书对jar进行重新签名。这将允许您解决过期的问题,前提是构建知道它应该提取您的工件版本,而不是原始公共配置。