我正在开发部署规则集(DRS)。我有一个签名的jar文件和包含规则集的xml。 我已将已签名的jar文件和xml部署在C:\ Windows \ Sun \ Java \ Deployment文件夹中。 我还可以在Java控制面板的“安全”选项卡的“查看活动部署规则集”链接中查看xml文件 安全级别很高 Java home指向1.8_66并且所有env变量似乎都没问题。 目前安装了3个版本的java,1.6_45,1.8_66和1.8_71(在java控制面板中可见)。
问题,
http://xyz.abc.com的规则集为1.6+,具有权限运行。但是,当我点击链接xyz.abc.com时,页面上的按钮不会显示,并且“错误...单击以获取详细信息”将显示在其位置。
点击错误后,我得到一个名为“Application Error”的弹出窗口,上面写着
NoClassDefFoundError的
矩阵/ util的/ CallbackListener
点击详细信息并从菜单选项中选择,我可以看到错误
java.security.PrivilegedActionException: java.security.cert.CRLException: Empty input
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.RevocationCheckHelper.retrieveCRL(Unknown Source)
at com.sun.deploy.security.TrustDecider.reset(Unknown Source)
........................
Caused by: java.security.cert.CRLException: Empty input
at sun.security.provider.X509Factory.engineGenerateCRL(Unknown Source)
at java.security.cert.CertificateFactory.generateCRL(Unknown Source)
........................
任何人都可以指点我错的地方。
此致
答案 0 :(得分:1)
仅基于异常的堆栈跟踪(因为我真的不知道你的代码在幕后做了什么),我相信你的问题是证书撤销列表不包含任何撤销的证书(序列号)和Java CertPath提供程序无法处理空列表。 您可以检查CRL分发点并查看它是否已撤销证书?如果是这样,你必须为你的代码添加一个调试选项(也许是try / catch),看看抛出异常的方法是什么。