2011-02-14 66 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文件加载类。所以代码源是一个目录,所以它没有证书。