как разработать клиент веб-сервиса JAX-WS? - PullRequest
0 голосов
/ 27 июля 2011

У меня есть одно требование для разработки клиента веб-сервиса в отдельном Java-приложении, использующем Spring Framework. Мой вопрос заключается в том, как я могу разработать один класс Java, который можно использовать для вызова веб-службы. Все, что у меня есть, это местоположение файла WSDL и wsdl? Также это приложение должно работать в разном окружении. где URL WSDL является diff. Так что, по сути, я хочу по возможности выводить свойство url.

Я слышал об использовании JaxwsproxFactoryBean из Spring Framework, но не нашел ни одного хорошего рабочего примера.

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Если вы хотите использовать Spring, JaxwsProxyFactoryBean - это то, что вам нужно.По крайней мере, я сделал.

Я следовал этому примеру:

http://krams915.blogspot.com/2010/12/spring-mvc-3-accessing-web-services.html

Я не пробовал точный код, предоставленный в этой статье, но я следовал шаг за шагомшаг и я заставил это работать.И это без проблем: инструмент wsimport используется в этом примере для генерации классов, а JaxwsProxyFactoryBean используется для внедрения прокси:

<bean id="subscriptionJaxProxyService" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean"
 p:serviceInterface="org.krams.tutorial.oxm.SubscriptionPort"
 p:wsdlDocumentUrl="http://localhost:8081/spring-ws-standalone/krams/ws/subscription.wsdl"
 p:namespaceUri="http://krams915.blogspot.com/ws/schema/oss"
 p:serviceName="SubscriptionPortService"
 p:portName="SubscriptionPortSoap11"/>

Наконец, введите маршаллер / демаршаллер через пружину (например, Jaxb2Marshaller)десериализовать ответы веб-службы.

Примечания:

  • обязательно проверьте статью, которую она упоминает в начале:

http://krams915.blogspot.com/2010/12/spring-ws-mvc-implementing-client.html

  • самая раздражающая часть - заставить wsimport работать.Убедитесь, что вы используете версию 1.12 из репозитория:

    <pluginRepository>
        <url>http://download.java.net/maven/2</url>
        <id>Java dot Net</id>
        <layout>default</layout>
        <name>Repository for JAX-WS commons</name>
    </pluginRepository>
    
0 голосов
/ 27 июля 2011

По моему мнению, вам не обязательно использовать Spring для создания клиента веб-службы.

Для этой цели можно использовать инструмент wsimport.

откройте командную строку, измените dir там, где находится wsimport.bat / ws.import.sh, и выполните приведенную ниже команду.

wsimport -keep -verbose $ {ваше местоположение wsdl}

Несколько исходных файловбыл сгенерирован (скорее всего) в папке с именем com.Имя верхней папки зависит от имени верхнего пакета, который вы использовали в своем wsdl.

...