Кто-нибудь получил jax-ws-catalog.xml для локального разрешения schemaLocation в Metro? - PullRequest
6 голосов
/ 14 мая 2010

Я добавил jax-ws-catalog.xml в мой файл .war для локального разрешения schemaLocation, а не удаленно. Я последовал примеру на

Руководство пользователя Metro: 2.10. Разработка клиентского приложения с локально упакованным WSDL

Когда я развертываю .war и использую soapUI для проверки веб-службы, он застревает при попытке доступа к schemaLocation http://somehost:8080/CMDB/schemas/common/1.0/CMDBCommonTypes.xsd

Схема и wsdl проверяются в Eclipse (с использованием инструмента XML Catalog для Eclipse). (Я могу опубликовать содержимое моего jax-ws-catalog.xml и соответствующие xsd и wsdl, если это поможет.

Поиск в Google выявляет множество других проблем, связанных с тем, что jax-ws-catalog.xml не работает в стеке Metro.

Кто-нибудь получил jax-ws-catalog.xml для работы в Metro?

1 Ответ

15 голосов
/ 05 апреля 2011

Где вы размещаете файлы jax-ws-catalog.xml и WSDL?

Вы упомянули, что используете WAR, но в пределах WAR расположение jax-ws-catalog.xml зависит от того, пытаетесь ли вы получить к нему доступ как клиенту WS или как издателю конечной точки WS (серверу) .

Если вы обращаетесь к внешним веб-службам из вашей WAR, то ваш jax-ws-catalog.xml должен находиться в каталоге app.war / WEB-INF / classes / META-INF, В качестве альтернативы, если в вашем приложении развернута первая веб-служба по контракту с аннотацией @WSDLLocation, то для этого WSDL jax-ws ищет файл jax-ws-catalog.xml в файле app.jar / META-INF

То есть для клиентского расположения WSDL app.war / WEB-INF / classes / META-INF / jax-ws-catalog.xml для контракта первые конечные точки WS с аннотацией @WSDLLocation app.war / META-INF

Если вы хотите сделать и то, и другое, то есть публиковать (сначала контракт), а также использовать веб-службы, то вам нужно поместить jax-ws-catalog.xml + WSDL в обоих местах, т.е. app.jar / WEB-INF / классы / META-INF и app.jar / META-INF

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

...