SOAPFaultException при развертывании на сервере Liberty, но отлично работает в полном профиле сервера приложений Websphere - PullRequest
0 голосов
/ 25 июня 2019

Я перевожу свое корпоративное java-приложение из полного профиля WAS8.5 к свободному серверу. У моего кода приложения есть мыльный клиент и требуется заглушки, сгенерированные из WSDL. Я могу получить ответ при использовании WAS8.5, но получая ниже исключения во время работы сервера свободы.

  • Я уже добавил jaxws-2.2.
  • Воссоздал заглушки снова, указывая на сервер свободы, IBM-WS из Eclipse. I
  • не удалось найти соответствующие ответы онлайн.

Консольные журналы

[WARNING ] Could not unwrap Operation {http://services.abc.com/gb/getsomepoint/v1}getSomeInfoByParam to match method "public abstract void com.abc.services.gb.getsomepoint.v1.GBGetSomePointV1.getSomeInfoByParam(javax.xml.ws.Holder,java.lang.String,java.lang.String,javax.xml.ws.Holder,javax.xml.ws.Holder)"
javax.xml.ws.soap.SOAPFaultException: BIP3113E: Exception detected in message flow GB_GetSomePoint_V1.SOAP Input (integration node NMD4BRK) 
[err]   at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
[err]   at [internal classes]
[err]   ... 51 more
[err] Caused by: 
[err] org.apache.cxf.binding.soap.SoapFault: BIP3113E: Exception detected in message flow GB_GetSomePoint_V1.SOAP Input (integration node NMD9BRK) 
[err]   at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
[err]   at [internal classes]
[err]   ... 53 more

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Не нужно много информации с консоли, но нужно проверить, выглядят ли сообщения запроса / ответа клиенту и от него на Liberty так же, как на WAS 8.5.Это был бы простой способ проверить, является ли ожидаемое поведение таким же.Еще одна вещь, которую стоит рассмотреть, если ваш WSDL-контракт соответствует запросу, сгенерированному клиентом (то есть все привязки есть).

Конфигурация веб-служб (WS-Policy / WS-Security) может существенно отличаться в Liberty vs WAS 8.5, и в этом документе Центра знаний есть полезная информация о том, как правильно настроить приложение, если оно вам необходимо.

Развертывание приложений JAX-WS в Liberty:

https://www.ibm.com/support/knowledgecenter/SSD28V_9.0.0/com.ibm.websphere.wlp.core.doc/ae/twlp_dep_jaxws.html

Последнее, что я бы предложил, - это включить веб-службы Liberty.след.В сообщениях консоли не так много информации о первопричине, но при включении трассировки конкретная проблема может стать известной.Вы можете включить трассировку, следуя этим инструкциям.

Включение трассировки в WebSphere Liberty:

https://www.ibm.com/support/knowledgecenter/SSD28V_9.0.0/com.ibm.websphere.wlp.core.doc/ae/rwlp_logging.html

Конкретная спецификация трассировки, которую вы будете использоватьхочу включить для веб-сервисов следующее:

traceSpecification="*=audit:com.ibm.ws.jaxws.*=finest:org.apache.cxf.*=finest”
0 голосов
/ 03 июля 2019

Если он работает после комментирования функции jaxws-2.2, вы должны использовать другую реализацию jax-ws, прилагаемую к вашему приложению. Вы можете попробовать добавить обратно функцию jaxws-2.2 и установить это свойство JVM для сервера свободы: -Dcom.ibm.xml.xlxp.jaxb.opti.level = 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...