Клиент JAX-WS с сервером AXIS; отсутствует пространство имен в ответе - PullRequest
0 голосов
/ 27 апреля 2009

У меня проблема, связанная с JAX-WS и AXIS. JAX-WS (2.1.7) в качестве клиента, Axis (1.4.x) в качестве сервера.

Все работает хорошо, но ответ не может быть прочитан в Java.

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
  <ns1:myserviceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://my/service">
   <ns1:myserviceReturn xsi:type="xsd:string">responsestring</ns1:myserviceReturn>
  </ns1:myserviceResponse>
 </soapenv:Body>
</soapenv:Envelope>

Проблема в том, что если объявление ns1: -namespace удаляется из myserviceReturn, JAX-WS может вернуть что-либо еще, кроме нуля.

Кто-нибудь знает, как заставить JAX-WS игнорировать пространства имен, как вручную изменить ответ SOAP, чтобы исключить "ns1", или другие идеи для такого рода проблем?

1 Ответ

1 голос
/ 11 июня 2009

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

...