Skip to content

Commit 65bbd8a

Browse files
author
YunaiV
committed
开始 WebService 入门示例
1 parent 1315127 commit 65bbd8a

File tree

4 files changed

+34
-21
lines changed

4 files changed

+34
-21
lines changed

lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/pom.xml

+4-10
Original file line numberDiff line numberDiff line change
@@ -32,29 +32,22 @@
3232
</dependencyManagement>
3333

3434
<dependencies>
35-
<!-- &lt;!&ndash; 实现对 SpringMVC 的自动化配置 &ndash;&gt;-->
36-
<!-- <dependency>-->
37-
<!-- <groupId>org.springframework.boot</groupId>-->
38-
<!-- <artifactId>spring-boot-starter-web</artifactId>-->
39-
<!-- </dependency>-->
40-
4135
<!-- 实现对 Spring WebService 的自动化配置 -->
4236
<dependency>
4337
<groupId>org.springframework.boot</groupId>
4438
<artifactId>spring-boot-starter-web-services</artifactId>
4539
</dependency>
4640

47-
<!-- tag::springws[] -->
41+
<!-- Java WSDL 实现库 -->
4842
<dependency>
4943
<groupId>wsdl4j</groupId>
5044
<artifactId>wsdl4j</artifactId>
5145
</dependency>
52-
<!-- end::springws[] -->
5346
</dependencies>
5447

5548
<build>
5649
<plugins>
57-
<!-- tag::xsd[] -->
50+
<!-- jaxb2-maven-plugin 插件,用于实现将 XML 生成目标类 -->
5851
<plugin>
5952
<groupId>org.codehaus.mojo</groupId>
6053
<artifactId>jaxb2-maven-plugin</artifactId>
@@ -68,13 +61,14 @@
6861
</execution>
6962
</executions>
7063
<configuration>
64+
<!-- 源文件地址 -->
7165
<sources>
7266
<source>${project.basedir}/src/main/resources/users.xsd</source>
7367
</sources>
68+
<!-- 生成代码目标包 -->
7469
<packageName>cn.iocoder.springboot.lab65.userservice.model</packageName>
7570
</configuration>
7671
</plugin>
77-
<!-- end::xsd[] -->
7872
</plugins>
7973
</build>
8074

Original file line numberDiff line numberDiff line change
@@ -1,31 +1,43 @@
11
package cn.iocoder.springboot.lab65.userservice.config;
22

3-
import org.springframework.boot.autoconfigure.webservices.WebServicesProperties;
3+
import org.springframework.boot.web.servlet.ServletRegistrationBean;
4+
import org.springframework.context.ApplicationContext;
45
import org.springframework.context.annotation.Bean;
56
import org.springframework.context.annotation.Configuration;
67
import org.springframework.core.io.ClassPathResource;
8+
import org.springframework.ws.config.annotation.EnableWs;
9+
import org.springframework.ws.transport.http.MessageDispatcherServlet;
710
import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
811
import org.springframework.xml.xsd.SimpleXsdSchema;
912
import org.springframework.xml.xsd.XsdSchema;
1013

1114
@Configuration
15+
@EnableWs // 开启 Web Services 服务
1216
public class WebServiceConfig {
1317

1418
public static final String NAMESPACE_URI = "https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-65/lab-65-spring-ws-demo";
1519

20+
@Bean
21+
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
22+
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
23+
servlet.setApplicationContext(applicationContext);
24+
servlet.setTransformWsdlLocations(true);
25+
return new ServletRegistrationBean<>(servlet, "/ws/*");
26+
}
27+
1628
@Bean
1729
public XsdSchema usersSchema() {
1830
return new SimpleXsdSchema(new ClassPathResource("users.xsd"));
1931
}
2032

21-
@Bean(name = "users")
22-
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema usersSchema, WebServicesProperties properties) {
23-
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
24-
wsdl11Definition.setLocationUri(properties.getPath());
25-
wsdl11Definition.setTargetNamespace(NAMESPACE_URI);
26-
wsdl11Definition.setSchema(usersSchema);
33+
@Bean(name = "users")
34+
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema usersSchema) {
35+
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
36+
wsdl11Definition.setLocationUri("/ws");
37+
wsdl11Definition.setTargetNamespace(NAMESPACE_URI);
38+
wsdl11Definition.setSchema(usersSchema);
2739
wsdl11Definition.setPortTypeName("UsersPort");
2840
return wsdl11Definition;
29-
}
41+
}
3042

3143
}

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

+10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cn.iocoder.springboot.lab65.userservice.endpoint;
22

33
import cn.iocoder.springboot.lab65.userservice.config.WebServiceConfig;
4+
import cn.iocoder.springboot.lab65.userservice.model.UserCreateRequest;
5+
import cn.iocoder.springboot.lab65.userservice.model.UserCreateResponse;
46
import cn.iocoder.springboot.lab65.userservice.model.UserGetRequest;
57
import cn.iocoder.springboot.lab65.userservice.model.UserGetResponse;
68
import org.springframework.ws.server.endpoint.annotation.Endpoint;
@@ -21,4 +23,12 @@ public UserGetResponse get(@RequestPayload UserGetRequest request) {
2123
return response;
2224
}
2325

26+
@PayloadRoot(namespace = WebServiceConfig.NAMESPACE_URI, localPart = "UserCreateRequest")
27+
@ResponsePayload
28+
public UserCreateResponse create(@RequestPayload UserCreateRequest request) {
29+
UserCreateResponse response = new UserCreateResponse();
30+
response.setId((int) (System.currentTimeMillis() / 1000));
31+
return response;
32+
}
33+
2434
}

lab-65/lab-65-spring-ws-demo/lab-65-spring-ws-demo-user-service/src/main/resources/application.yml

-3
This file was deleted.

0 commit comments

Comments
 (0)