我使用Apache CXF在Spring中引入了WS-Security的支持。应用程序在Weblogic 10.3.6上运行。
我们的build.gradle文件: -
compile("org.springframework:spring-web:4.2.6.RELEASE")
compile("org.springframework:spring-core:4.2.6.RELEASE")
compile("org.springframework:spring-beans:4.2.6.RELEASE")
compile("org.springframework:spring-jms:4.2.6.RELEASE")
compile("org.springframework:spring-orm:4.2.6.RELEASE")
compile("org.apache.cxf:cxf-rt-transports-http:3.1.6")
compile("org.apache.cxf:cxf-rt-bindings-soap:3.1.6")
compile("org.apache.cxf:cxf-rt-frontend-simple:3.1.6")
compile("org.apache.cxf:cxf-rt-frontend-jaxws:3.1.6")
compile("org.apache.cxf:cxf-rt-ws-addr:3.1.6")
compile("org.hibernate:hibernate-core:5.1.0.Final")
compile("commons-lang:commons-lang:2.6")
compile("org.apache.ws.security:wss4j:1.6.10")
compile("xalan:xalan:2.7.2")
在实施过程中,我遇到了以下错误: -
java.lang.ClassNotFoundException: org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor
所以我介绍了以下依赖项来解决异常
compile("org.apache.cxf:cxf-rt-ws-security:3.1.6")
但是,重建和重新部署应用程序时遇到以下异常: -
Caused By: java.lang.LinkageError: loader constraint violation: when resolving overridden method "com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Ljavax/xml/stream/XMLEventReader;)Ljava/lang/Object;" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, com/sun/xml/bind/v2/runtime/unmarshaller/UnmarshallerImpl, and its superclass loader (instance of <bootloader>), have different Class objects for the type allerImpl.unmarshal(Ljavax/xml/stream/XMLEventReader;)Ljava/lang/Object; used in the signature
我认为这是一个ClassLoader问题,在UnmarshallerIml类中使用unmarshal()。
我很惊讶地介绍 编译( “org.apache.cxf:CXF-RT-的WS-Security:3.1.6”) 我遇到了这个例外。
我非常感谢有关此错误的原因和可能解决方案的任何建议。
提前感谢您的帮助。
皮特