如何排除bouncycastle weblogic 12c库

问题描述 投票:0回答:1

我有一个网络服务,它是一个数字签名(验证pdf,sign pdf)。我正在使用库bcpkix-jdk15on-1.54.jar,bcprov-jdk15on-1.54.jar,itextpdf-5.4.0.jar。并作为Weblogic 12c 12.2.1.2应用程序服务器当我在本地测试服务时,一切正常,但是在服务器上测试时,该服务返回:java.lang.ClassNotFoundException:org.bouncycastle.jcajce.provider.digest.SHA256 $ Digest

已被证实图书馆正在参战。找出可能是由于应用程序的bouncyCastle和weblogic bouncyCastle之间的库冲突引起的,因此,在weblogic.xml中添加下一行]

            <wls:package-name>org.bouncycastle.*</wls:package-name>
        </wls:prefer-application-packages>```

But the result is the same

> ```ExceptionConverter: java.security.NoSuchAlgorithmException: class
> configured for MessageDigest (provider: BC) cannot be found.
>         at java.security.Provider$Service.getImplClass(Provider.java:1649)
>         at java.security.Provider$Service.newInstance(Provider.java:1592)
>         at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
>         at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
>         at java.security.Security.getImpl(Security.java:698)
>         at java.security.MessageDigest.getInstance(MessageDigest.java:227)
>         at com.itextpdf.text.pdf.security.DigestAlgorithms.getMessageDigest(DigestAlgorithms.java:159)
>         at com.itextpdf.text.pdf.security.PdfPKCS7.<init>(PdfPKCS7.java:445)
>         at com.itextpdf.text.pdf.AcroFields.verifySignature(AcroFields.java:2317)
>         at io.rubrica2.sign.pdf.PDFSigner.getSigners(PDFSigner.java:469)
>         at io.rubrica2.utils.Utils.pdfToCertificados(Utils.java:380)
>         at ec.bdp.firmadigital.implementacion.FirmaDigitalService.verificarDocumentoPDF(FirmaDigitalService.java:82)
>         at bpe.firma.services.FirmaDigital.verificarPDF(FirmaDigital.java:61)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:120)
>         at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:93)
>         at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149)
>         at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88)
>         at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
>         at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
>         at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
>         at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
>         at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)
>         at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)
>         at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)
>         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:169)
>         at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:229)
>         at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:667)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
>         at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSecurityHelper.java:108)
>         at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:286)
>         at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:295)
>         at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:128)
>         at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServlet.java:103)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
>         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
>         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
>         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
>         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247)
>         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3679)
>         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
>         at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
>         at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
>         at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
>         at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433)
>         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)
>         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)
>         at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691)
>         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651)
>         at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
>         at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
>         at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
>         at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
>         at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
>         at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)
>         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)
>         at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) Caused by: java.lang.ClassNotFoundException:
> org.bouncycastle.jcajce.provider.digest.SHA256$Digest
>         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1026)
>         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:987)
>         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:83)
>         at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:608)
>         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:540)
>         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:493)
>         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:470)
>         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
>         at java.security.Provider$Service.getImplClass(Provider.java:1636)
>         ```
    

我有一个网络服务,它是一个数字签名(验证pdf,sign pdf)。我正在使用库bcpkix-jdk15on-1.54.jar,bcprov-jdk15on-1.54.jar,itextpdf-5.4.0.jar。并作为Weblogic 12c 12.2.1.2 ...

java bouncycastle weblogic12c
1个回答
0
投票

我知道这个问题已经存在了相当长的时间,但是我遇到了类似的问题,解决方案是使用以下选项之一将这些JAR文件放在服务器CLASSPATH上:

© www.soinside.com 2019 - 2024. All rights reserved.