开发web service分为服务器端和客户端,在java中使用web service有多种选择

服务器端

1. 使用JDK开发(1.6及以上版本)

留坑

2. 使用CXF框架

留坑

3. spring SimpleJaxWsServiceExporter

以下为《spring实战》部分内容

spring为使用javaAPI for XML Web Service(JAX-WS)来发布和使用SOAPWeb 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的这种发布形式了。

这个影响不大,就使用JDK1.6这种方式来发布,可以写一个module来做webservice服务。

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,它能生成一个知道如何与SOAPWeb服务交互的代理。所创建的代理实现了webservice接口。因此,JaxWsProxyFactoryBean让装配和使用一个远程Web服务变成了可能,就像这个远程Web服务是本地POJO一样。

开发web service

在spring boot下使用JaxWsProxyFactoryBean来进行webservice调用,遇到两个坑,详见:




相关文章: