В своем приложении я использую в качестве веб-сервера 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 , поскольку из-за технических ограничений я не могу предоставить его в клиентском проекте.
<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>
Есть идеи у кого-нибудь?