com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl нельзя преобразовать в oracle.j2ee.ws.saaj.soap.MessageImpl

У меня есть следующая ошибка:

Exception: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl cannot be cast to oracle.j2ee.ws.saaj.soap.MessageImpl
    at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:234)
    at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:141)
    at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:134)

Мой код:

SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();

soapMessage.getSOAPPart().getEnvelope().addNamespaceDeclaration("http://action.web.nnn.some.com/", "act");

SOAPElement elemement = soapMessage.getSOAPPart().getEnvelope().getBody().addChildElement("getSomeMethod", "http://action.web.nnn.some.com/").addChildElement("arg0");

elemement.addTextNode(someDate);

soapMessage.saveChanges();

SOAPMessage responce = SOAPConnectionFactory.newInstance().createConnection().call(soapMessage, wsdlUrl);

Приложение работает под:

  • Среда выполнения Java(TM) SE (сборка 1.7.0_15-b33)

  • WebLogic-сервер 12.1.2.0.0

Ошибка появилась после добавления в setDomainEnv следующей строки:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl

Я пытаюсь переключить реализацию SAAj на saaj-impl-1.3.23.jar.

Мой вопрос: как правильно попросить Weblogic использовать предоставленную реализацию SAAJ вместо собственной?


person user770113    schedule 28.08.2014    source источник


Ответы (1)


Этот вопрос часто задают, ответ заключается в том, чтобы сообщить weblogic, какую версию следует предпочесть в вашем документе weblogic/application.xml:

<wls:prefer-application-packages>
   <wls:package-name>com.sun.xml.messaging.saaj.*</wls:package-name>
</wls:prefer-application-packages>

Это заставит weblogic использовать пакет saaj в вашем ухе в каталоге APP-INF/lib. Ознакомьтесь с документацией Oracle здесь

Также см:

Как установить порядок банок в WebLogic?

Запретить Weblogic 12c использовать системную привязку slf4j

Конфигурация Weblogic — Prefer-web-inf-classes

person Display Name is missing    schedule 28.08.2014
comment
Спасибо за ответ. Кажется, эта проблема решена. Но после этого сервер выходит из строя со следующим исключением: com.sun.xml.messaging.saaj.SOAPExceptionImpl: ошибка при сохранении составного сообщения в com.sun.xml.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1269) - person user770113; 29.08.2014
comment
Ошибка при сохранении составного сообщения устранена путем добавления set JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl в setDomainEnv. Спасибо. - person user770113; 29.08.2014