#web-services #axis2 #webservice-client #weblogic-10.x
#веб-сервисы #apache-axis #веб-сервис-клиент #weblogic-10.x
Вопрос:
Мое приложение представляет собой войну, развернутую в weblogic 10. В одном из моих классов мне нужно выполнить 2 вызова веб-сервиса A и W. A основан на AXIS2 с использованием wstx-asl-3.2.4.jar W основан на веб-сервисе weblogic, использующем jars в weblogic. Я предполагаю, что из-за конфликта между реализацией wstx-asl и weblogic stax они не могут быть созданы одновременно. Вот подробная информация о проблеме: 1. Если я удалю wstx-asl-3.2.4.jar из папки web-inf / lib, B в порядке, но A сбой из-за исключения: ClassCastException:weblogic.xml.stax.XMLStreamInputFactory 2. Если я сохраню wstx-asl-3.2.4.jar в папке web-inf / lib A в порядке, но B не работает из-за исключения: [java.lang.ExceptionInInitializerError at com.bea.staxb.runtime.internal.BindingContextImpl.createMarshaller(BindingContextImpl.java:65) at weblogic.wsee.bind.runtime.internal.LiteralSerializerContext.(LiteralSerializerContext.java:54) at weblogic.wsee.bind.runtime.internal.RuntimeBindingsImpl.createSerializerContext(RuntimeBindingsImpl.java:152) at weblogic.wsee.bind.runtime.internal.RuntimeBindingsImpl.createSerializerContext(RuntimeBindingsImpl.java:168) at weblogic.wsee.codec.soap11.SerializationContextUtil.createSerializerContext(SerializationContextUtil.java:26) at weblogic.wsee.codec.soap11.SoapEncoder.encodeParts(SoapEncoder.java:179) at weblogic.wsee.codec.soap11.SoapEncoder.encode(SoapEncoder.java:119) at weblogic.wsee.codec.soap11.SoapCodec.encode(SoapCodec.java:128) at weblogic.wsee.ws.dispatch.client.CodecHandler.encode(CodecHandler.java:52) at weblogic.wsee.ws.dispatch.client.CodecHandler.handleRequest(CodecHandler.java:41) at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:123) at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:99) at weblogic.wsee.ws.dispatch.client.ClientDispatcher.dispatch(ClientDispatcher.java:101) at weblogic.wsee.ws.WsStub.invoke(WsStub.java:89) at weblogic.wsee.jaxrpc.StubImpl._invoke(StubImpl.java:331) at
Пожалуйста, посоветуйте, как сделать их успешными вместе. Спасибо.
.........................
Ответ №1:
в вашем развертывании weblogic.xml файл, используйте <prefer-web-inf-classes>
тег и установите для него значение true для вызова axis2. И установите для него значение false для веб-сервиса weblogic.
http://download.oracle.com/docs/cd/E13222_01/wls/docs90/programming/classloading.html#1082452