Где вы размещаете файлы 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
Я успешно использовал вышеупомянутый подход во многих моих проектах, которые одновременно публикуют и используют веб-сервисы, и я могу гарантировать, что он работает как положено.