2015-12-27 4 views
0

Я пытаюсь использовать веб-сервис, используя компонент CXF в mule (Anypoint Studio). Так что я попытался genrating файла WSDL из URL, но я получаю эту errror: Rpc/encoded wsdls are not supported in CXF поэтому я последовал this answer.Использование webservice с CXF в Mule 3.5

Он работал и он генерировал клиентские заглушки, затем копируется файлы в мой мул проект.

, но я получаю эту ошибку:

Service.SomeService.<init>(java.net.URL, javax.xml.namespace.QName) (java.lang.NoSuchMethodException) 

Это мой поток:

<flow name="WebServiceTest"> 
      <cxf:jaxws-client 
     clientClass="service.SomeService" 
     wsdlLocation="http://127.0.0.1:8000/api/v2_soap/?wsdl" 
     operation="test"/>   
     <outbound-endpoint address="http://127.0.0.1:8000/api.php/?type=v2_soap"/> 
</flow> 

Любые идеи?

ответ

0

Ваша конфигурация неверна, особенно ваш адрес исходящей конечной точки. Вы можете попробовать настроить клиент CXF в соответствии с документацией Mule.
Вы также можете создать клиент для своих услуг JAX-WS без генерации клиента из WSDL. Здесь вам нужна копия интерфейса сервиса и объекты всех ваши данных локально, чтобы использовать что-то вроде этого: -

<flow name="csvPublisher"> 
    ... 
    <cxf:jaxws-client serviceClass="org.example.HelloService" operation="sayHi"/> 
    <outbound-endpoint address="http://localhost:63081/services/greeter"/> 
</flow> 

Другого подхода, что вы можете использовать клиент CXF сгенерированные в качестве исходящей конечной точки. Во-первых, вам нужно сгенерировать клиента CXF, используя инструмент WSDL для Java из CXF или плагина Maven.
Затем вам нужно настроить что-то вроде следующего: -

<flow name="csvPublisher"> 
    ... 
    <cxf:jaxws-client 
     clientClass="org.apache.hello_world_soap_http.SOAPService" 
     port="SoapPort" 
     wsdlLocation="classpath:/wsdl/hello_world.wsdl" 
     operation="greetMe"/> 
    <outbound-endpoint address="http://localhost:63081/services/greeter"/> 
</flow> 

Лучше поставить в WSDL локальном пути к классам.

Пожалуйста, проверка всей документации здесь в качестве ссылки, чтобы получить его конфигурации: -
https://docs.mulesoft.com/mule-user-guide/v/3.7/consuming-web-services-with-cxf
и
Consuming a Webservice Using Mule 3.4

+0

Спасибо за ваш ответ! Мне жаль, что я не должен был понять, что мне нужно генерировать из WSDL, поэтому «другой подход», который вы предложили, не работает для меня, как «cxf не поддерживается», любые другие идеи? – user2016