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