Проблема пространства имен при вызове веб-службы Axis2 из Flex4 с клиентом, созданным при интроспекции Flex Builder - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть веб-сервис на основе Java, созданный с помощью Axis2.WSDL был сгенерирован мастером Eclipse 3.6.

У меня есть клиент Flex 4, созданный с помощью интроспекции через WSDL в Flash Builder 4.

Для вызовов, когда метод принимает «простой» типкак String или int, все выглядит нормально, но для вызовов, где параметр (на стороне Java) и OMElement, то есть данные XML, я устанавливаю следующую ошибку времени выполнения для службы:

org.apache.axis2.engine.AxisEngine  - namespace mismatch require http://server.rsc.geo.othermaps.com found none

http://server.rsc.geo.othermaps.com действительно является целевым пространством имен, объявленным в WSDL.

Тот же рабочий процесс (использующий автоматически сгенерированный клиент, построенный из интроспекции веб-службы) прекрасно работал с той же службой в Flex 3, поэтомуне уверен, с чего начать охоту.Так что мне действительно нужно вручную добавить пространство имен в данные XML, которые я отправляю?

D

Ответы [ 2 ]

0 голосов
/ 30 декабря 2014

Вы пытаетесь использовать веб-службу SOAP, созданную Axis2.

Убедитесь, что ваше пространство имен запроса конверта SOAP точно соответствует пространству имен wsdl:

Допустим, ваше имя пространства имен: yourNamespace

Ваш HTTP-запрос POST должен выглядеть следующим образом:

<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:v2="yourNamespace">
  <soap:Body>
   <v2:yourActionName>
    <v2:yourFirstParameter>yourFirstParameterValue</v2:yourFirstParameter>
    <v2:yourSecondParameter>yourSecondParameterValue</v2:yourSecondParameter>
   </v2:yourActionName>
  </soap:Body>
</soap:Envelope>

и WSDL должен начинаться с:

<wsdl:definitions targetNamespace="yourNamespace">
 <wsdl:documentation>yourWebServiceProjectNameHere</wsdl:documentation>
   <wsdl:types>
     <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="yourNamespace">
0 голосов
/ 12 апреля 2011

Если ваш возвращаемый XML не имеет объявления пространства имен вверху, я бы обязательно добавил его.

...