Ссылка на политику #AddressingPolicy не может быть решена ошибка - PullRequest
0 голосов
/ 21 декабря 2011

Я занимаюсь разработкой клиента веб-службы с использованием Apache CXF 2.5.0, JDK 7 и Eclipse Helios EE. Я получаю следующую ошибку при запуске клиента веб-службы в eclipse.

Исключение в потоке "main" javax.xml.ws.soap.SOAPFaultException: не удалось разрешить ссылку на политику #AddressingPolicy ..

Я выполнил следующие шаги для развертывания клиента.

  1. Создан Java-проект в Eclipse Helios EE и добавлена ​​среда выполнения CXF в проект.

  2. Использование Apache CXF 2.5.0 WSDL2Java сгенерировал Java-классы для клиента (включена опция -exsh true для обработки заголовков). Классы были сгенерированы в eclipse src dir.

  3. Реализован метод main в клиентском классе для вызова веб-службы.

Когда я выполняю клиента, я получаю указанное выше исключение.

Я проверил WSDL, и у него есть один элемент Ссылка на политику с xml id = #AddressingPolicy и другой элемент Ссылка на политику с xml id = #TlsPolicy в элементе привязки. Соответствующие политики приведены в WSDL в конце WSDl с использованием элементов wsp: Policy.

Я не могу изменить WSDL, поскольку он уже развернут как внешняя служба и предоставлен мне для разработки клиента.

Кто-нибудь сталкивался с подобной проблемой с Apache CXF 2.5.0 раньше. Также я чувствую, что это может быть проблемой с версией CXF, которую я использую. Поддерживает ли Apache CXF 2.5.0 ссылки на локальные политики в WSDL.

Ценю ваши ответы.

1 Ответ

0 голосов
/ 10 января 2012

У меня просто была такая же проблема. Исправление, которое я нашел, состояло в том, чтобы изменить WSDL и использовать ссылку wsu: Id вместо xml: id .

<wsp:Policy wsu:Id="AddressingPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <...>
</wsp:Policy>

Я знаю, что вы заявили, что не можете изменить WSDL, но я считаю, что это не так. Упомянутая мною модификация не изменит содержимое запросов / ответов SOAP по сети, поэтому вы все равно сможете взаимодействовать с существующим веб-сервисом.

...