From 1315127affc00d73bf5c34df68a944065cb01fff Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Mon, 15 Jun 2020 20:09:17 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=20WebService=20=E5=85=A5?=
=?UTF-8?q?=E9=97=A8=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pom.xml | 42 ++++++++++++++++-
.../userservice/config/WebServiceConfig.java | 31 +++++++++++++
.../userservice/endpoint/UserEndpoint.java | 24 ++++++++++
.../src/main/resources/application.yml | 3 ++
.../src/main/resources/users.xsd | 46 ++++++++++---------
5 files changed, 123 insertions(+), 23 deletions(-)
create mode 100644 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
create mode 100644 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
create mode 100644 lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml
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 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-