Ошибка при получении wsdl через URL из сервиса - PullRequest
2 голосов
/ 18 февраля 2020

В своем приложении я использую в качестве веб-сервера Widlfly 17.0.1 и для веб-сервисов wsdl Axis2 1.7.6

Я получаю сообщение об ошибке при попытке получить wsdl через URL с помощью клиентской программы с сервера URL вроде http://myserver: 8080 / myapp / services / MyService? Wsdl

Когда я нажимаю на URL в браузере, я получаю

<error>
  <description>Unable to generate WSDL 1.1 for this service</description>
  <reason>
    If you wish Axis2 to automatically generate the WSDL 1.1, then please set useOriginalwsdl as false in 
    your services.xml
  </reason>
</error>

Пока у меня есть попробовал предлагаемое решение отсюда useOriginalwsdl = true не работает в axis2 , но без успеха ошибка остается прежней.

Также мои wsdl и xsd кажутся действительными и служба серверов конечная точка также работает нормально и, как и ожидалось.

Когда я использую soapUI или мой клиент с предоставленным wsdl, служба работает нормально и возвращает нужный ответ.

Но мне нужно получить wsdl клиенту через URL-адрес службы сервера, например http://myserver: 8080 / myapp / services / MyService? wsdl , поскольку из-за технических ограничений я не могу предоставить его в клиентском проекте.

* 102 3 * Мои сервисы. xml выглядит следующим образом:
   <service name="MyService">
        <messageReceivers>
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.test.MyServiceMessageReceiverInOut"/>
        </messageReceivers>
        <parameter name="ServiceClass">org.test.MyServiceSkeleton</parameter>
        <parameter name="useOriginalwsdl">true</parameter>
        <parameter name="modifyUserWSDLPortAddress">true</parameter>
        <operation name="getDocument" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ws.test.org/myapp/myservice">
            <actionMapping>getValue</actionMapping>
            <outputActionMapping>http://ws.test.org/myapp/myservice/myservicePortType/output2</outputActionMapping>
        </operation>
        <operation name="setValue" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ws.test.org/myapp/myservice">
            <actionMapping>setValue</actionMapping>
            <outputActionMapping>http://ws.test.org/myapp/myservice/myservicePortType/output1</outputActionMapping>
        </operation>
    </service>

Декларация службы внутри файла wsdl выглядит следующим образом:

   <service name="MyService">
        <port name="myservicePort" binding="tns:myserviceBinding">
            <soap:address location="http://${MyHost}:${MyPort}/myapp/services/MyService"/>
        </port>
    </service>

Есть идеи у кого-нибудь?

...