CXF 3.0.2 wirft die Ausnahme "java.lang.AssertionError: UNIMPLEMENTED" in weblogic10.3

8

Wir versuchen, einen Webservice-Aufruf unter Verwendung von CXF-Framework mit CXF-ws-Sicherheit und der Anwendung in weblogic 10.3 zu machen, erhalten aber die unten angegebene Ausnahme und scheinen die weblogic-spezifischen jars ausgewählt zu haben, obwohl das jercesimpl jar vorhanden ist in der Anwendung in / WEB-INF / lib.

Optionen versucht, aber hat nicht geholfen:

  1. Einstellen des Weblogic Container Deskriptors mit web-inf Einstellungen

stimmt.

  1. Festlegen der JVM-Argumente oder Systemeigenschaften als -

-Djavax.xml.soap.MessageFactory = com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl -Djavax.xml.soap.SOAPFactory = com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl -Djavax.xml.soap.SOAPConnectionFactory = weblogic.wsee.saaj.SOAPConnectionFactoryImpl

  1. Hinzufügen von xercesimpl jar zu maven pom.

    Ausnahme

    ]] Hauptursache für ServletException. java.lang.AssertionError: UNIMPLEMENTED         bei weblogic.xml.domimpl.NodeImpl.setTextContent (NodeImpl.java:216)         bei org.apache.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeAttribute (XmlWriterToTree.java:137)         bei org.apache.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeNamespace (XmlWriterToTree.java:114)         unter org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal (DOMXMLSignature.java:211)         unter org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign (DOMXMLSignature.java:329)         bei org.apache.wss4j.dom.message.WSSecSignature.computeSignature (WSSecSignature.java:578)         bei org.apache.wss4j.dom.action.SignaturAction.execute (SignatureAction.java:151)         bei org.apache.wss4j.dom.handler.WSHandler.doSenderAction (WSHandler.java:226)         unter org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.access $ 100 (WSS4JOutInterceptor.java:54)         an org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor $ WSS4JOutInterceptorInternal.handleMessageInternal (WSS4JOutInterceptor.java:282)         at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor $ WSS4JOutInterceptorInternal.handleMessage (WSS4JOutInterceptor.java:154)         at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor $ WSS4JOutInterceptorInternal.handleMessage (WSS4JOutInterceptor.java:141)         bei org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java307) enter code here         bei org.apache.cxf.endpoint.ClientImpl.doInvoke (ClientImpl.java:514)         bei org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:423)         bei org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:326)         bei org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:279)         bei org.apache.cxf.frontend.ClientProxy.invokeSync (ClientProxy.java:98)         bei org.apache.cxf.jaxws.JaxWsClientProxy.invoke (JaxWsClientProxy.java:138)

    Danke, Soumya

Soumya 24.02.2016, 12:10
quelle

1 Antwort

2

Ich fand schließlich die Antwort, ohne irgendein weblogic Startskript zu ändern (geprüft auf CXF 2.7.0 und weblogic 10.3.6

Der Grund für dieses Problem ist, dass CXF nicht mit der Weblogic-Implementierung von SAAJ kompatibel ist. Ссылка

  

1.   F: Ich habe diesen Fehler: javax.xml.ws.WebServiceException: SAAJ-Factory-Instanz kann nicht erstellt werden.   A: Bitte stellen Sie sicher, dass Sie das saaj-impl-1.3.jar im Klassenpfad haben und stellen Sie sicher, dass Ihre App diese anstelle von weblogic aufruft.

Das gleiche Problem verursacht auch den Fehler UNIMPLEMENTED in der Frage

Also meine Lösung ist 1) Setze saaj-impl in den Klassenpfad. Wenn Sie maven verwenden, setzen Sie die Abhängigkeit auf pom.xml

2) in weblogic.xml (in Ihrem Ressourcenordner) put

%Vor%

3) Starten Sie Ihren Server über Node Manager neu und rechts sollte die CXF WS-Security funktionieren

Ich hoffe, es hilft!

    
Joshua H 09.09.2016 12:52
quelle

Tags und Links