目录
3. spring SimpleJaxWsServiceExporter
开发web service分为服务器端和客户端,在java中使用web service有多种选择
服务器端
1. 使用JDK开发(1.6及以上版本)
留坑
2. 使用CXF框架
留坑
3. spring SimpleJaxWsServiceExporter
以下为《spring实战》部分内容
spring为使用javaAPI for XML Web Service(JAX-WS)来发布和使用SOAP Web Service提供了大力支持,Spring提供了一个JAX-WS服务导出器,SimpleJaxWsServiceExporter,但必须知道它并不一定是所有场景下的最好选择
SpringSimpleJaxWsServiceExporter把Spring管理的bean发布为JAX-WS运行时中的服务端点。它会将使用JAX-WS注解所标注的所有bean发布为JAX-WS服务。
当启动的时候,SimpleJaxWsServiceExporter会搜索Spring应用上下文来查找所有使用@WebService注解的bean。当找到符合的bean时,SimpleJaxWsServiceExporter使用http://localhost:8080/ 地址将bean发布为JAX-WS端点。
有些JAX-WS在运行时中,支持将端点发布到指定地址的行为,在这种情况下可以。有些JAX-WS不支持在运行时中发布端点到指定地址,不能使用SimpleJaxWsServiceEndpoint进行发布
意思就是说?如果使用JDK1.6 javax.jms包下的@WebService注解,是可以使用spring来发布web service的,因为JDK1.6的JAX-WS在运行时中,支持将端点发布到指定地址的行为。而如果在spring中如使用JAX-WS 2.1参考实现生成web service服务,那么就不支持spring的这种发布形式了。
4. spring-ws
参考:Spring Boot整合spring-ws开发web service
Spring Boot整合spring-ws调用web service服务
另外,spring可以提供spring soap web service,如上;也可以提供spring rest web service,如使用@RestController注解来发布rest服务
客户端
spring中使用JaxWsProxyFactoryBean,我们可以在Spring中装配web service,与任意一个其他的bean一样。
JaxWsProxyFactoryBean是Spring工厂bean,它能生成一个知道如何与SOAP Web服务交互的代理。所创建的代理实现了webservice接口。因此,JaxWsProxyFactoryBean让装配和使用一个远程Web服务变成了可能,就像这个远程Web服务是本地POJO一样。
在spring boot下使用JaxWsProxyFactoryBean来进行webservice调用,遇到两个坑,详见:spring boot下使用JaxWsProxyFactoryBean来进行web service调用遇到的两个坑