Дублирование CXF на стороне клиента целевого пространства имен - PullRequest
0 голосов
/ 13 апреля 2010

Я размещаю веб-сервис и веб-приложение на одном сервере, сгенерированном из wsdl2java. Я могу нормально связаться со службой через SoapUI, и он возвращает одно объявление пространства имен при публикации на работающем сервере, но когда я работаю локально и использую SoapUI, он генерирует два экземпляра xlmns = "" вместо одного в моем xml. Я скопировал ниже пример XML-файла:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
<SendResponse xmlns="http://myendpoint.org/service" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Receipt>
<MyReceipt xmlns:ns3="http://myendpoint.org/service" xmlns="" xmlns="" xmlns:ns6="http://myapp.myserver.net/myservicegroup/myservice/V01" receiptVersion="V01">
  <ReceiptHeader>
    <ReceiptTimestamp>2010-04-13T08:27:03.036-04:00</ReceiptTimestamp>
  </ReceiptHeader>
  <TransmissionReceipt>
    <TransmissionID>testuser</TransmissionID>
    <TransmissionTimestamp>2010-04-13T08:27:03.036-04:00</TransmissionTimestamp>
  </TransmissionReceipt>
</MyReceipt></Receipt></SendResponse></soap:Body></soap:Envelope>

Поэтому, когда он отменяет маршалинг, он плохо работает, когда я использую свое веб-приложение в качестве клиента веб-сервиса. Почему CXF добавляет второе пространство имен? Я наблюдал за отладкой до самого конца, и он выглядел на 100% идеально со стороны веб-сервиса, вообще без дублированного пространства имен. Это не произойдет, пока не будет возвращен XML на клиентскую сторону.

1 Ответ

0 голосов
/ 13 апреля 2010

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

W3C XML Spec

Имя атрибута НЕ ДОЛЖНО появляться более одного раза в одном и том же начальном теге или теге пустого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...