From 72d2cd438bd1a4bd334b187da58e59a62cf11ca7 Mon Sep 17 00:00:00 2001
From: zhanghai <120228220@qq.com>
Date: Sat, 25 Feb 2023 08:48:26 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0webservice=20=E7=9A=84demo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 11 +++++
src/main/java/com/docus/server/CxfConfig.java | 41 +++++++++++++++++++
.../collection/webservice/IUserServer.java | 11 +++++
.../server/collection/webservice/UserDto.java | 17 ++++++++
.../collection/webservice/UserServerImpl.java | 24 +++++++++++
5 files changed, 104 insertions(+)
create mode 100644 src/main/java/com/docus/server/CxfConfig.java
create mode 100644 src/main/java/com/docus/server/collection/webservice/IUserServer.java
create mode 100644 src/main/java/com/docus/server/collection/webservice/UserDto.java
create mode 100644 src/main/java/com/docus/server/collection/webservice/UserServerImpl.java
diff --git a/pom.xml b/pom.xml
index 9de0d1e..5b74b44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,6 +12,17 @@
docus-webservice-sdry
+
+ org.apache.cxf
+ cxf-spring-boot-starter-jaxws
+ 3.3.4
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
com.alibaba.cloud
diff --git a/src/main/java/com/docus/server/CxfConfig.java b/src/main/java/com/docus/server/CxfConfig.java
new file mode 100644
index 0000000..d2ce69c
--- /dev/null
+++ b/src/main/java/com/docus/server/CxfConfig.java
@@ -0,0 +1,41 @@
+package com.docus.server;
+
+import com.docus.server.collection.webservice.IUserServer;
+import org.apache.cxf.jaxws.EndpointImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.apache.cxf.Bus;
+import org.apache.cxf.bus.spring.SpringBus;
+import org.apache.cxf.transport.servlet.CXFServlet;
+
+import javax.xml.ws.Endpoint;
+
+@Configuration
+@RequiredArgsConstructor
+public class CxfConfig {
+ private final IUserServer userServer;
+
+ /**
+ * 注入Servlet,注意beanName不能为dispatcherServlet
+ * @author Fang Ruichuan
+ * @date 2022/11/14 19:16
+ */
+ @Bean
+ public ServletRegistrationBean cxfServlet() {
+ return new ServletRegistrationBean(new CXFServlet(), "/webservice/*");
+ }
+
+ @Bean(name = Bus.DEFAULT_BUS_ID)
+ public SpringBus springBus() {
+ return new SpringBus();
+ }
+
+ @Bean
+ public Endpoint endpoint() {
+ EndpointImpl endpoint = new EndpointImpl(springBus(), userServer);
+ endpoint.publish("/api");
+ return endpoint;
+ }
+}
diff --git a/src/main/java/com/docus/server/collection/webservice/IUserServer.java b/src/main/java/com/docus/server/collection/webservice/IUserServer.java
new file mode 100644
index 0000000..5ef87fe
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/webservice/IUserServer.java
@@ -0,0 +1,11 @@
+package com.docus.server.collection.webservice;
+
+/**
+ * @author Fang Ruichuan
+ * @date 2022-11-14 19:03
+ */
+public interface IUserServer {
+ default UserDto getUser(Long str) {
+ throw new RuntimeException("程序员正在马不停蹄地开发新功能");
+ }
+}
diff --git a/src/main/java/com/docus/server/collection/webservice/UserDto.java b/src/main/java/com/docus/server/collection/webservice/UserDto.java
new file mode 100644
index 0000000..77541f8
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/webservice/UserDto.java
@@ -0,0 +1,17 @@
+package com.docus.server.collection.webservice;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author Fang Ruichuan
+ * @date 2022-11-14 19:02
+ */
+@Data
+@Builder
+public class UserDto {
+ private Long id;
+ private String name;
+ private Integer age;
+ private String address;
+}
diff --git a/src/main/java/com/docus/server/collection/webservice/UserServerImpl.java b/src/main/java/com/docus/server/collection/webservice/UserServerImpl.java
new file mode 100644
index 0000000..bfd496d
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/webservice/UserServerImpl.java
@@ -0,0 +1,24 @@
+package com.docus.server.collection.webservice;
+
+import org.springframework.stereotype.Service;
+
+import javax.jws.WebService;
+
+/**
+ * @author Fang Ruichuan
+ * @date 2022-11-14 19:08
+ */
+@Service
+@WebService
+public class UserServerImpl implements IUserServer {
+
+ @Override
+ public UserDto getUser(Long id) {
+ return UserDto.builder()
+ .id(id)
+ .address("上海市浦东新区")
+ .age(25)
+ .name("laJi").build();
+ }
+}
+