From 65bbd8a6bc562011918becef67986dd34e9f47f8 Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Tue, 16 Jun 2020 00:37:19 +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 | 14 +++-------
.../userservice/config/WebServiceConfig.java | 28 +++++++++++++------
.../userservice/endpoint/UserEndpoint.java | 10 +++++++
.../src/main/resources/application.yml | 3 --
4 files changed, 34 insertions(+), 21 deletions(-)
delete 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 75acf8f0..08e63b83 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,29 +32,22 @@
-
-
-
-
-
-
org.springframework.boot
spring-boot-starter-web-services
-
+
wsdl4j
wsdl4j
-
-
+
org.codehaus.mojo
jaxb2-maven-plugin
@@ -68,13 +61,14 @@
+
${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
index 40fed776..d57c8d7c 100644
--- 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
@@ -1,31 +1,43 @@
package cn.iocoder.springboot.lab65.userservice.config;
-import org.springframework.boot.autoconfigure.webservices.WebServicesProperties;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
+import org.springframework.ws.config.annotation.EnableWs;
+import org.springframework.ws.transport.http.MessageDispatcherServlet;
import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
import org.springframework.xml.xsd.SimpleXsdSchema;
import org.springframework.xml.xsd.XsdSchema;
@Configuration
+@EnableWs // 开启 Web Services 服务
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 ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
+ MessageDispatcherServlet servlet = new MessageDispatcherServlet();
+ servlet.setApplicationContext(applicationContext);
+ servlet.setTransformWsdlLocations(true);
+ return new ServletRegistrationBean<>(servlet, "/ws/*");
+ }
+
@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);
+ @Bean(name = "users")
+ public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema usersSchema) {
+ DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
+ wsdl11Definition.setLocationUri("/ws");
+ 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
index b6c6cba3..6dee32ce 100644
--- 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
@@ -1,6 +1,8 @@
package cn.iocoder.springboot.lab65.userservice.endpoint;
import cn.iocoder.springboot.lab65.userservice.config.WebServiceConfig;
+import cn.iocoder.springboot.lab65.userservice.model.UserCreateRequest;
+import cn.iocoder.springboot.lab65.userservice.model.UserCreateResponse;
import cn.iocoder.springboot.lab65.userservice.model.UserGetRequest;
import cn.iocoder.springboot.lab65.userservice.model.UserGetResponse;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
@@ -21,4 +23,12 @@ public class UserEndpoint {
return response;
}
+ @PayloadRoot(namespace = WebServiceConfig.NAMESPACE_URI, localPart = "UserCreateRequest")
+ @ResponsePayload
+ public UserCreateResponse create(@RequestPayload UserCreateRequest request) {
+ UserCreateResponse response = new UserCreateResponse();
+ response.setId((int) (System.currentTimeMillis() / 1000));
+ 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
deleted file mode 100644
index b49781bb..00000000
--- a/lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-spring:
- webservices:
- path: /ws