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(); + } +} +