JAX WS с использованием CXF и Webphere 8.5 (org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler несовместим с org.apache.cxf.frontend.ClientProxy) - PullRequest
0 голосов
/ 09 мая 2018

У меня было приложение, работающее в Webphere 6 и JDK 1.6. Сейчас я пытаюсь перенести его на Whephere Application Server 8.5. У меня проблема с библиотеками, используемыми для использования сервисов SOAP (я использую CXF). Проблема в том, что в этой версии Webphere имеет собственные библиотеки для этого (AXIS2). Я следовал рекомендациям IBM «Использование стороннего движка веб-сервисов JAX-WS» - https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_thirdparty.html- ЭТО НЕ РАБОТАЕТ ДЛЯ МЕНЯ

Однако я обнаружил, что кто-то решил эту проблему, удалив файл из библиотеки META-INF AXIS2 в Websphere. (javax.xml.ws.spi.Provider) ===== ЭТО РАБОТАЛО ===== Но теперь у меня возникли другие проблемы

org.springframework.web.util.NestedServletException: обработка обработчика не выполнена; вложенным исключением является java.lang.NoSuchMethodError

орг / апач / WS / Обще / схема / XmlSchemaCollection.read (Lorg / w3c / дом / документ; Ljava / языки / String;) Lorg / апач / WS / Обще / схема / XmlSchema; (загружается из файла: /usr/IBM/WebSphere/AppServer/plugins/org.apache.axis2.jar от org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@41aaaf6e) вызывается из класса org.apache.cxf.common.xmlschema.SchemaCollection ( нагруженный из файла: /usr/IBM/WebSphere/AppServer/profiles/AppServer01/installedApps/CLDC462Cell01/MyApp.ear/myapp.war/WEB-INF/lib/cxf-core-3.1.5.jar от com.ibm.ws.classloader.CompoundClassLoader@5344aede

1 Ответ

0 голосов
/ 09 мая 2018

Ваше приложение получает некоторые классы Apache из библиотек WebSphere, а не из вашего приложения, и версия в WebSphere несовместима с версией приложения CXF. Это означает, что вам нужно будет добавить jar-файл с соответствующей версией org.apache.ws.commons.schema.XmlSchemaCollection в ваше приложение. Я предполагаю, что вы уже используете делегирование PARENT_LAST в своем веб-модуле, учитывая, что вы используете собственную реализацию веб-сервисов, но если нет, то это тоже будет необходимо.

...