java - org.bouncycaSTLe.operator.OperatorCreationException : cannot create signer: class configured for Signature (provider: BC) cannot be found

标签 java tomcat

我需要一些建议来解决这个问题,如果有的话。

这里的问题是,我们无法在每次部署后创建合作伙伴用户,如果我们再次重启 tomcat 服务,那么它会完美运行。

当我们在部署后尝试创建合作伙伴用户时,我们在日志中收到以下错误。

20-Dec-2017 13:27:35.388 | ERROR | [   http-apr-28080-exec-78] | SecurityAdminServiceManagerImpl:1986 - Error in generateCertificateDetails 
org.bouncycastle.operator.OperatorCreationException: cannot create signer: class configured for Signature (provider: BC) cannot be found.
    at org.bouncycastle.operator.jcajce.JcaContentSignerBuilder.build(Unknown Source) ~[bcpkix-jdk15on-156.jar:1.56.0.0]
    at com.northgateis.gem.security.cipher.CertificateHelper.signCertificate(CertificateHelper.java:298) ~[classes/:26696]
    at com.northgateis.gem.security.cipher.CertificateHelper.createClientCertificate(CertificateHelper.java:256) ~[classes/:26696]
    at com.northgateis.gem.security.service.impl.SecurityAdminServiceManagerImpl.generateCertificateDetails(SecurityAdminServiceManagerImpl.java:1979) [classes/:26696]

20-Dec-2017 13:56:44.158 INFO [http-apr-28080-exec-69] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
 java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
    at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1325)
    at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1313)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1178)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)

最佳答案

如果您重新部署该应用程序(就像您在开发过程中经常做的那样),它就会停止工作。 JNI 是另一个遭受此问题困扰的东西。

我更喜欢将 jar 与应用一起发送,而不必手动将其复制到容器 lib 目录。

您可以在您的 lib 文件夹中添加 javapns.jar 和 bcprove-jdk15on-1.47.jar 文件

将 BouncyCaSTLe 作为提供程序添加到 JRE/JDK $JAVA_HOME/jre/lib/security/java.security 文件中(确保将其添加到运行时使用的 JRE,例如如果您安装了多个 JRE/JDK)

关于java - org.bouncycaSTLe.operator.OperatorCreationException : cannot create signer: class configured for Signature (provider: BC) cannot be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936839/

相关文章:

java - Apache Tomcat : Error

maven - Maven 系统中使用 Spring-MVC 的 Java App 使用 tomcat 监听端口 8080 仅在本地 fs 中执行 HDFS API

java - 我如何使用正则表达式 java 提取值?

java - 如何使用java正则表达式来匹配一行

java - Spring CXF Webservice 未正确部署

java - 无法访问 servlet

java - MySQL 在 Tomcat 中创建内存泄漏

tomcat - Railo 上的 CFWheels 停止工作

java - primefaces selectOneMenu 未排序

java - 我应该将 IDE 项目文件 checkin 版本控制系统吗?