2011-02-14 31 views
1

我有一個使用java keytool生成的密鑰自簽名的jar。在運行時,我嘗試用下面的代碼獲取證書:檢索自簽名jar的證書問題

ProtectionDomain pd = MyApplication.class.getProtectionDomain(); 
Certificate[] cert = pd.getCodeSource().getCertificates(); 

當我的罐子在一個獨立的,命令行Java應用程序使用此工作正常。但是,當我在Weblogic服務器中部署的Web應用程序中使用此jar時,getCertificates()調用返回null。爲什麼?

回答

1

因爲容器已被配置爲解壓縮.WAR文件,所以它直接從WEB-INF/classes目錄而不是.WAR文件加載類。所以代碼源是一個目錄,所以它沒有證書。