Spring 如何开发JAX-WSWebService客户端?
我有一个需求是在独立的java应用程序中开发web服务客户端,该应用程序使用spring框架。我的问题是如何开发一个可用于调用web服务的java类。我所拥有的只是WSDL和WSDL文件的位置?此外,此应用程序还应在不同的环境中运行。其中WSDL的url是不同的。所以基本上,如果可能的话,我希望将url属性外部化Spring 如何开发JAX-WSWebService客户端?,spring,jax-ws,Spring,Jax Ws,我有一个需求是在独立的java应用程序中开发web服务客户端,该应用程序使用spring框架。我的问题是如何开发一个可用于调用web服务的java类。我所拥有的只是WSDL和WSDL文件的位置?此外,此应用程序还应在不同的环境中运行。其中WSDL的url是不同的。所以基本上,如果可能的话,我希望将url属性外部化 我从spring框架中听说了使用JaxwsproxFactoryBean,但没有找到任何好的工作示例。在我看来,创建web服务客户端不一定要使用spring wsimport工具可用于
我从spring框架中听说了使用JaxwsproxFactoryBean,但没有找到任何好的工作示例。在我看来,创建web服务客户端不一定要使用spring wsimport工具可用于此目的 打开命令提示符,将dir更改为wsimport.bat/ws.import.sh所在的位置,并执行下面的命令 wsimport-keep-verbose${您的wsdl位置}
在名为com的文件夹中(很可能)将生成多个源文件。顶级文件夹的名称取决于您在wsdl中使用的顶级包的名称。在我看来,您不必使用Spring来创建web服务客户端 wsimport工具可用于此目的 打开命令提示符,将dir更改为wsimport.bat/ws.import.sh所在的位置,并执行下面的命令 wsimport-keep-verbose${您的wsdl位置}
在名为com的文件夹中(很可能)将生成多个源文件。顶级文件夹的名称取决于您在wsdl中使用的顶级包的名称。如果您想使用Spring,JaxwsProxyFactoryBean就是一种选择。至少我做到了 我举了一个例子: 我还没有尝试过本文提供的确切代码,但我一步一步地遵循了这一步骤,并使其发挥了作用。而且无需麻烦:本例中使用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"/>
最后,通过spring(例如Jaxb2Marshaller)注入一个marshaller/unmarshaller来反序列化web服务的响应
注:
- 确保检查文章开头提到的内容:
- 最烦人的是让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>
http://download.java.net/maven/2 Java点网 违约 JAX-WS公共资源库
<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"/>
最后,通过spring(例如Jaxb2Marshaller)注入一个marshaller/unmarshaller来反序列化web服务的响应
注:
- 确保检查文章开头提到的内容:
- 最烦人的是让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>
http://download.java.net/maven/2 Java点网 违约 JAX-WS公共资源库