前言
最近项目里用到WebService,之前用过,后来好久没有接触过,都忘得差不多了,再加上,以前没有写东西的癖好,所以当听到用WebService事,当场懵逼,然后赶紧找资料补救下,但是网上的资料怎么讲呢?完全不能用。。。后来在网上东凑西凑,然后请教了一下别人才搞出来的。废话不多说,我们来一起看看,怎么成功的部署一个WebService服务吧。
引入maven依赖
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-spring-boot-starter-jaxws -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.6</version>
</dependency>
测试实体代码
@Data
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class User implements Serializable {
Long id;
String name;
String phone;
}
接口代码
@WebService(targetNamespace = "cxf")
public interface CxfService {
/**
* 获取用户信息
* @param id
* @return
*/
@WebMethod
User getUser(@WebParam(name = "id") String id);
}
接口实现代码
@Service
@WebService(targetNamespace = "cxf")
public class CxfServiceImpl implements CxfService {
@Override
public User getUser(String id) {
User user = new User();
if ("1".equals(id)) {
user.setId(1L);
user.setName("yaoZhu");
user.setPhone("18110981995");
return user;
}
user.setId(2L);
user.setName("luWang");
user.setPhone("18110981995");
return user;
}
}
WebService发布配置代码
@Configuration
public class CxfConfig {
@Autowired
private CxfService cxfService;
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus(){
return new SpringBus();
}
/**
* AX-WS站点服务
* @return
*/
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), cxfService);
endpoint.publish("/visual");
return endpoint;
}
}
application.yml配置文件
cxf:
path: /services
差不多代码写完了,那就开始测试吧!
访问路径:http://localhost:8080/services
访问路径:http://localhost:8080/services/visual?wsdl
这就结束了,整个项目算是大致完成了。
项目代码:https://github.com/zywaiting/springboot-cxf