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 @@ - + - + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - -