Hi, Most likely the org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory and javax.xml.crypto.dsig.XMLSignatureFactory get loaded by different classloaders. ------------- Freeman(Yue) Fang
Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman小屋 On 2013-1-15, at 下午9:51, Gavriil Konovalenko wrote: > Hi, > > I'm facing issue with junction CXF 2.7.2 + Weblogic 12c + JDK 1.7, > while migrating application from CXF 2.2.6 + Weblogic 10 + JDK1.5. > > Issue which I'm stuck on is getting subj. exception: > org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory > cannot be cast to javax.xml.crypto.dsig.XMLSignatureFactory in > xmlsec-1.5.3.jar's version of XMLSignatureFactory. > > Full stacktrace I'm getting is: > > org.apache.cxf.interceptor.Fault: > org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory cannot be > cast to javax.xml.crypto.dsig > .XMLSignatureFactory > at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignBeforeEncrypt(AsymmetricBindingHandler.java > :195) > at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.handleBinding(AsymmetricBindingHandler.java:98) > at > org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(Polic > yBasedWSS4JOutInterceptor.java:165) > at > org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(Polic > yBasedWSS4JOutInterceptor.java:89) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) > at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:133) > at $Proxy197.getProcessingEventDetails(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > com.paradase.top.green.hill.client.MiraclesPosterServlet.doPost(MiraclesPosterServlet.java:666) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242) > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216) > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:221) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3284) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) > at > weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) > at > weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163) > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089) > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074) > at > weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1513) > at > weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) > at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) > Caused by: java.lang.ClassCastException: > org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory cannot be > cast to javax.xml.cryp > to.dsig.XMLSignatureFactory > at > javax.xml.crypto.dsig.XMLSignatureFactory.findInstance(XMLSignatureFactory.java:202) > at > javax.xml.crypto.dsig.XMLSignatureFactory.getInstance(XMLSignatureFactory.java:292) > at > org.apache.ws.security.message.WSSecSignature.init(WSSecSignature.java:126) > at > org.apache.ws.security.message.WSSecSignature.<init>(WSSecSignature.java:119) > at > org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getSignatureBuilder(AbstractBindingBuilder.java:172 > 3) > at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignature(AsymmetricBindingHandler.java:546) > at > org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignBeforeEncrypt(AsymmetricBindingHandler.java > :147) > ... 35 more > > > I've run debug and enabled -verbose:class java option to ensure that > classes are loaded from WEB-INF/lib. > > > Any idea, how I can fix the issue? > > > Regards, > > *Gavriil Konovalenko *|* *[email protected] | Skype: gkonovalenko
