diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/pom.xml b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/pom.xml index d338beca..baf7310e 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/pom.xml +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/pom.xml @@ -42,6 +42,7 @@ + org.apache.cxf cxf-codegen-plugin @@ -51,13 +52,15 @@ generate-sources generate-sources - ${project.build.directory}/generated/cxf + src/main/resources/wsdl/user.wsdl classpath:wsdl/user.wsdl + + ${project.build.directory}/generated/cxf wsdl2java @@ -65,30 +68,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/WebServicesConfig.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/CXFConfig.java similarity index 77% rename from lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/WebServicesConfig.java rename to lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/CXFConfig.java index 0745b3cd..997c73b4 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/WebServicesConfig.java +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/config/CXFConfig.java @@ -6,13 +6,16 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -public class WebServicesConfig { +public class CXFConfig { @Bean public UserService userService() { JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean(); + // 设置 UserService 接口 jaxWsProxyFactoryBean.setServiceClass(UserService.class); - jaxWsProxyFactoryBean.setAddress("http://127.0.0.1:8080/ws/user"); + // 设置 Web Services 地址 + jaxWsProxyFactoryBean.setAddress("http://127.0.0.1:9090/ws/user"); + // 创建 return (UserService) jaxWsProxyFactoryBean.create(); } diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/controller/DemoController.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/controller/DemoController.java index 6f5f72b2..52ce4bc6 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/controller/DemoController.java +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/java/cn/iocoder/springboot/lab65/demo/controller/DemoController.java @@ -1,8 +1,6 @@ package cn.iocoder.springboot.lab65.demo.controller; -import https.github_com.yunaiv.springboot_labs.tree.master.lab_65.lab_65_spring_ws_demo.UserGetRequest; -import https.github_com.yunaiv.springboot_labs.tree.master.lab_65.lab_65_spring_ws_demo.UserGetResponse; -import https.github_com.yunaiv.springboot_labs.tree.master.lab_65.lab_65_spring_ws_demo.UserService; +import https.github_com.yunaiv.springboot_labs.tree.master.lab_65.lab_65_spring_ws_demo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -26,17 +24,17 @@ public class DemoController { return response.getName(); } -// @GetMapping("/create") // 为了方便测试,实际使用 @PostMapping -// public Integer create(@RequestParam("name") String name, -// @RequestParam("gender") Integer gender) { -// // 请求 -// UserCreateRequest request = new UserCreateRequest(); -// request.setName(name); -// request.setGender(gender); -// // 执行 Web Services 请求 -// UserCreateResponse response = userClient.createUser(name, gender); -// // 响应 -// return response.getId(); -// } + @GetMapping("/create") // 为了方便测试,实际使用 @PostMapping + public Integer create(@RequestParam("name") String name, + @RequestParam("gender") Integer gender) { + // 请求 + UserCreateRequest request = new UserCreateRequest(); + request.setName(name); + request.setGender(gender); + // 执行 Web Services 请求 + UserCreateResponse response = userService.create(request); + // 响应 + return response.getId(); + } } diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/application.yml b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/application.yml deleted file mode 100644 index f9e9468c..00000000 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/application.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 9090 diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/wsdl/user.wsdl b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/wsdl/user.wsdl index 180e4b08..3baac207 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/wsdl/user.wsdl +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-application/src/main/resources/wsdl/user.wsdl @@ -1,6 +1,8 @@ + + @@ -25,6 +27,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -33,11 +56,21 @@ + + + + + + + + + + @@ -50,6 +83,15 @@ + + + + + + + + + diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServicesConfig.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/CXFConfig.java similarity index 89% rename from lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServicesConfig.java rename to lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/CXFConfig.java index be1d49a8..e8aac5fd 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServicesConfig.java +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/CXFConfig.java @@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration; import javax.xml.ws.Endpoint; @Configuration -public class WebServicesConfig { +public class CXFConfig { public static final String NAMESPACE_URI = "https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-65/lab-65-spring-ws-demo"; @@ -19,7 +19,7 @@ public class WebServicesConfig { } @Bean - public Endpoint endpoint(UserService userService) { + public Endpoint userServiceEndpoint(UserService userService) { Endpoint endpoint = Endpoint.create(userService); endpoint.publish("/user");//发布地址 return endpoint; diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/request/UserCreateRequest.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/request/UserCreateRequest.java new file mode 100644 index 00000000..e375f6f6 --- /dev/null +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/request/UserCreateRequest.java @@ -0,0 +1,35 @@ +package cn.iocoder.springboot.lab65.userservice.request; + +/** + * 创建用户信息 Request + */ +public class UserCreateRequest { + + /** + * 昵称 + */ + private String name; + /** + * 性别别 + */ + private Integer gender; + + public String getName() { + return name; + } + + public UserCreateRequest setName(String name) { + this.name = name; + return this; + } + + public Integer getGender() { + return gender; + } + + public UserCreateRequest setGender(Integer gender) { + this.gender = gender; + return this; + } + +} diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/response/UserCreateResponse.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/response/UserCreateResponse.java new file mode 100644 index 00000000..465176ff --- /dev/null +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/response/UserCreateResponse.java @@ -0,0 +1,22 @@ +package cn.iocoder.springboot.lab65.userservice.response; + +/** + * 创建用户信息 Response + */ +public class UserCreateResponse { + + /** + * 用户编号 + */ + private Integer id; + + public Integer getId() { + return id; + } + + public UserCreateResponse setId(Integer id) { + this.id = id; + return this; + } + +} diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserService.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserService.java index aa3d7f93..7ff052fc 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserService.java +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserService.java @@ -1,17 +1,18 @@ package cn.iocoder.springboot.lab65.userservice.service; -import cn.iocoder.springboot.lab65.userservice.config.WebServicesConfig; +import cn.iocoder.springboot.lab65.userservice.config.CXFConfig; +import cn.iocoder.springboot.lab65.userservice.request.UserCreateRequest; import cn.iocoder.springboot.lab65.userservice.request.UserGetRequest; +import cn.iocoder.springboot.lab65.userservice.response.UserCreateResponse; import cn.iocoder.springboot.lab65.userservice.response.UserGetResponse; import javax.jws.WebService; -@WebService(targetNamespace = WebServicesConfig.NAMESPACE_URI -// , -// name = "userPortName" -) +@WebService(targetNamespace = CXFConfig.NAMESPACE_URI) public interface UserService { UserGetResponse get(UserGetRequest request); + UserCreateResponse create(UserCreateRequest request); + } diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserServiceImpl.java b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserServiceImpl.java index 7b0c6f71..dd67c0d2 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserServiceImpl.java +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/service/UserServiceImpl.java @@ -1,20 +1,19 @@ package cn.iocoder.springboot.lab65.userservice.service; -import cn.iocoder.springboot.lab65.userservice.config.WebServicesConfig; +import cn.iocoder.springboot.lab65.userservice.config.CXFConfig; +import cn.iocoder.springboot.lab65.userservice.request.UserCreateRequest; import cn.iocoder.springboot.lab65.userservice.request.UserGetRequest; +import cn.iocoder.springboot.lab65.userservice.response.UserCreateResponse; import cn.iocoder.springboot.lab65.userservice.response.UserGetResponse; import org.springframework.stereotype.Service; import javax.jws.WebService; +@Service @WebService( serviceName = "userService", // 服务名称 - targetNamespace = WebServicesConfig.NAMESPACE_URI, // WSDL 命名空间 - endpointInterface = "cn.iocoder.springboot.lab65.userservice.service.UserService" // Web Services 对应接口 -// name = "userPortType", // portType 名称,作为客户端生成代码时的接口名称 TODO -// portName = "userPortName" // port 名称 TODO + targetNamespace = CXFConfig.NAMESPACE_URI // WSDL 命名空间 ) -@Service public class UserServiceImpl implements UserService { @Override @@ -26,12 +25,11 @@ public class UserServiceImpl implements UserService { return response; } -// @PayloadRoot(namespace = WebServicesConfig.NAMESPACE_URI, localPart = "UserCreateRequest") -// @ResponsePayload -// public UserCreateResponse create(@RequestPayload UserCreateRequest request) { -// UserCreateResponse response = new UserCreateResponse(); -// response.setId((int) (System.currentTimeMillis() / 1000)); -// return response; -// } + @Override + public UserCreateResponse create(UserCreateRequest request) { + UserCreateResponse response = new UserCreateResponse(); + response.setId((int) (System.currentTimeMillis() / 1000)); + return response; + } } diff --git a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/resources/application.yml b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/resources/application.yml index a3643e9b..2d5ca931 100644 --- a/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/resources/application.yml +++ b/lab-65/lab-65-cxf-ws-demo/lab-65-cxf-ws-demo-user-service/src/main/resources/application.yml @@ -1,3 +1,6 @@ # CXF 配置项,对应 CxfProperties 配置类 cxf: path: /ws/ # CXF CXFServlet 的匹配路径 + +server: + port: 9090 # 设置服务器端口为 9090