Я представляю поддержку WS-Security с Spring, используя Apache CXF. Приложение работает на 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 с unmarshal() в классе UnmarshallerIml.
Я удивлен введением compile("org.apache.cxf:cxf-rt-ws-security:3.1.6") Я столкнулся с этим исключением.
Я был бы очень признателен за любое предложение о причине и возможном решении этой ошибки.
Спасибо заранее за вашу помощь.
Пит