2012-05-10 30 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進行重新簽名。這將允許您解決過期的問題,前提是構建知道它應該提取您的工件版本,而不是原始公共配置。