diff --git a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/pom.xml b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/pom.xml
index f64aeb30..75acf8f0 100644
--- a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/pom.xml
+++ b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/pom.xml
@@ -32,12 +32,50 @@
-
+
+
+
+
+
+
+
org.springframework.boot
- spring-boot-starter
+ spring-boot-starter-web-services
+
+
+
+ wsdl4j
+ wsdl4j
+
+
+
+
+
+
+ org.codehaus.mojo
+ jaxb2-maven-plugin
+ 2.5.0
+
+
+ xjc
+
+ xjc
+
+
+
+
+
+ ${project.basedir}/src/main/resources/users.xsd
+
+ cn.iocoder.springboot.lab65.userservice.model
+
+
+
+
+
diff --git a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServiceConfig.java b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServiceConfig.java
new file mode 100644
index 00000000..40fed776
--- /dev/null
+++ b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/config/WebServiceConfig.java
@@ -0,0 +1,31 @@
+package cn.iocoder.springboot.lab65.userservice.config;
+
+import org.springframework.boot.autoconfigure.webservices.WebServicesProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
+import org.springframework.xml.xsd.SimpleXsdSchema;
+import org.springframework.xml.xsd.XsdSchema;
+
+@Configuration
+public class WebServiceConfig {
+
+ public static final String NAMESPACE_URI = "https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-65/lab-65-spring-ws-demo";
+
+ @Bean
+ public XsdSchema usersSchema() {
+ return new SimpleXsdSchema(new ClassPathResource("users.xsd"));
+ }
+
+ @Bean(name = "users")
+ public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema usersSchema, WebServicesProperties properties) {
+ DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
+ wsdl11Definition.setLocationUri(properties.getPath());
+ wsdl11Definition.setTargetNamespace(NAMESPACE_URI);
+ wsdl11Definition.setSchema(usersSchema);
+ wsdl11Definition.setPortTypeName("UsersPort");
+ return wsdl11Definition;
+ }
+
+}
diff --git a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/endpoint/UserEndpoint.java b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/endpoint/UserEndpoint.java
new file mode 100644
index 00000000..b6c6cba3
--- /dev/null
+++ b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/java/cn/iocoder/springboot/lab65/userservice/endpoint/UserEndpoint.java
@@ -0,0 +1,24 @@
+package cn.iocoder.springboot.lab65.userservice.endpoint;
+
+import cn.iocoder.springboot.lab65.userservice.config.WebServiceConfig;
+import cn.iocoder.springboot.lab65.userservice.model.UserGetRequest;
+import cn.iocoder.springboot.lab65.userservice.model.UserGetResponse;
+import org.springframework.ws.server.endpoint.annotation.Endpoint;
+import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
+import org.springframework.ws.server.endpoint.annotation.RequestPayload;
+import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
+
+@Endpoint
+public class UserEndpoint {
+
+ @PayloadRoot(namespace = WebServiceConfig.NAMESPACE_URI, localPart = "UserGetRequest")
+ @ResponsePayload
+ public UserGetResponse get(@RequestPayload UserGetRequest request) {
+ UserGetResponse response = new UserGetResponse();
+ response.setId(request.getId());
+ response.setName("没有昵称:" + request.getId());
+ response.setGender(request.getId() % 2 + 1);
+ return response;
+ }
+
+}
diff --git a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml
new file mode 100644
index 00000000..b49781bb
--- /dev/null
+++ b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml
@@ -0,0 +1,3 @@
+spring:
+ webservices:
+ path: /ws
diff --git a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/users.xsd b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/users.xsd
index 8d941e48..742ec690 100644
--- a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/users.xsd
+++ b/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/users.xsd
@@ -1,36 +1,40 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-