Demo代码:https://github.com/earnext/test-webservice
需求:客户端调取服务端WebService接口插入用户数据。
目录:
- WebService生成客户端代码两种方式
- WebService常用注解
- 编写服务端(发布服务)
3.1. WebService服务端业务代码
3.2. WebService服务端配置(发布服务)- 编写客户端(调取接口)
4.1. 通过Apache CXF生成客户端代码调取WebService接口
4.2. 通过HttpURLConnection工具调取WebService接口
4.3. 通过HttpClient工具调取WebService接口
1.引入依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.5</version>
</dependency>
2.服务端接口
/**
* 测试webservice插入用户 服务端
*
* @author Dongxibao
* @date 2020-05-30
*/
@WebService(targetNamespace = "http://insertuser.server.dongxibao.com/")
public interface TestServerService {
/**
* 测试webservice插入用户 服务端
* @param userDTO
* @return
*/
@WebMethod(action="http://insertuser.server.dongxibao.com/user")
RestResult<String> insertUser(@WebParam(name = "userDTO",
targetNamespace = "http://insertuser.server.dongxibao.com/") UserDTO userDTO);
}
3.服务端实现
/**
* 测试webservice插入用户 服务端
*
* @author Dongxibao
* @date 2020-05-30
*/
@Slf4j
@Component("testServerServiceImpl")
@WebService(serviceName = "TestServerService", targetNamespace = "http://insertuser.server.dongxibao.com/")
public class TestServerServiceImpl implements TestServerService {
@Autowired
private UserMapper userMapper;
@Override
public RestResult<String> insertUser(UserDTO userDTO) {
int insert = userMapper.insert(userDTO);
if (insert > 0) {
return new RestResult<>("插入成功", true);
} else {
return new RestResult<>("插入失败", false);
}
}
}