
源码地址
https://gitee.com/FetterXxZzz/webservice/tree/master
2.项目依赖
org.projectlombok lombok true org.apache.cxf cxf-spring-boot-starter-jaxws 3.3.4 org.springframework.boot spring-boot-starter-web-services org.hibernate hibernate-validator 5.2.4.Final
3.bean
@Data
public class UserDTO {
private Long id;
private String name;
private Integer age;
private String address;
}
4.service
@WebService(name = "IUserServer",// 服务名称
targetNamespace = "http://service.web.com")//命名空间
public interface IUserServer {
UserDTO getUser(Long id);
UserDTO getUsers(String id);
}
5.impl
@Service
@WebService(serviceName = "IUserServer",//与接口中serviceName一致
targetNamespace = "http://service.web.com",// 与接口中命名空间一致
endpointInterface ="com.web.service.IUserServer")// 接口地址
public class UserServerImpl implements IUserServer {
@Override
public UserDTO getUser(Long id) {
UserDTO userDTO=new UserDTO();
userDTO.setId(id);
userDTO.setName("Fetter");
userDTO.setAge(23);
userDTO.setAddress("成都市锦江区樱花街仁居锦尚春天小区2-2-2205");
return userDTO;
}
@Override
public UserDTO getUsers(String id) {
UserDTO user=new UserDTO();
user.setId(Long.parseLong(id));
user.setName("李明");
user.setAge(30);
user.setAddress("成都市锦江区樱花街仁居锦尚春天小区2-2-2204");
return user;
}
}
6.config
@Configuration
public class CxfConfig {
@Autowired
private IUserServer iUserServer;
@Bean
public ServletRegistrationBean cxfServlet() {
// 访问路径
// ip+port+/webservice
return new ServletRegistrationBean(new CXFServlet(),"/webservice
public class ClientTest {
public static void main(String[] args) {
JaxWsDynamicClientFactory jaxWsDynamicClientFactory= JaxWsDynamicClientFactory.newInstance();
// wsdl地址
Client client=jaxWsDynamicClientFactory.createClient("http://localhost:8080/webservice/api?wsdl");
Object[] objects=new Object[0];
Object[] objectPlus=new Object[0];
ObjectMapper mapper=new ObjectMapper();
try {
// 对应的method以及所需args
objects =client.invoke("getUser",96L);
objectPlus=client.invoke("getUsers", "77");
System.err.println(mapper.writevalueAsString(objects[0]));
System.err.println(mapper.writevalueAsString(objectPlus[0]));
}catch (java.lang.Exception e){
e.printStackTrace();
}
}
}
2.测试
红色字体部分便是拿到的数据
success