From 694ef7f821e9178fcf8569a0249b4ba96a4541fa Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 11 八月 2025 09:12:10 +0800 Subject: [PATCH] art: WebService集成 --- src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java | 4 + src/main/java/org/jeecg/config/Swagger2Config.java | 79 +++++++++---------- src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java | 4 + src/main/java/org/jeecg/modules/wms/dto/WSResponse.java | 6 + src/main/resources/application-dev.yml | 6 - src/main/resources/application-prod.yml | 3 src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java | 39 +++++++++ pom.xml | 16 +++ src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java | 14 +++ src/main/java/org/jeecg/modules/wms/CxfClientUtil.java | 32 ++++++++ src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java | 8 ++ 11 files changed, 163 insertions(+), 48 deletions(-) diff --git a/pom.xml b/pom.xml index 40acc8d..559fb4f 100644 --- a/pom.xml +++ b/pom.xml @@ -58,6 +58,8 @@ <!-- Log4j2鐖嗛浄婕忔礊 --> <log4j2.version>2.17.0</log4j2.version> <logback.version>1.2.9</logback.version> + <!-- webservice --> + <cxf.version>3.2.4</cxf.version> </properties> <repositories> @@ -220,17 +222,27 @@ <artifactId>java-jwt</artifactId> <version>${java-jwt.version}</version> </dependency> + <!-- WebService --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web-services</artifactId> + </dependency> +<!-- <dependency>--> +<!-- <groupId>org.apache.cxf</groupId>--> +<!-- <artifactId>cxf-spring-boot-starter-jaxws</artifactId>--> +<!-- <version>${cxf.version}</version>--> +<!-- </dependency>--> <!-- CXF webservice --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> - <version>3.2.1</version> + <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> - <version>3.2.1</version> + <version>${cxf.version}</version> </dependency> <!--shiro--> diff --git a/src/main/java/org/jeecg/config/Swagger2Config.java b/src/main/java/org/jeecg/config/Swagger2Config.java index 1fb1a97..17afa0c 100644 --- a/src/main/java/org/jeecg/config/Swagger2Config.java +++ b/src/main/java/org/jeecg/config/Swagger2Config.java @@ -101,29 +101,6 @@ .groupName("MDC"); } - /** - * swagger2鐨勯厤缃枃浠讹紝杩欓噷鍙互閰嶇疆swagger2鐨勪竴浜涘熀鏈殑鍐呭锛屾瘮濡傛壂鎻忕殑鍖呯瓑绛� 锛圖NC锛� - * - * @return Docket - */ - @Bean(value = "defaultApiDnc") - public Docket defaultApi3() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //姝ゅ寘璺緞涓嬬殑绫伙紝鎵嶇敓鎴愭帴鍙f枃妗� - .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.dnc")) - //鍔犱簡ApiOperation娉ㄨВ鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。 - .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build() - .securitySchemes(Collections.singletonList(securityScheme())) - .securityContexts(securityContexts()) - .globalOperationParameters(setHeaderToken()) - .groupName("DNC"); - } - @Bean(value = "defaultApiAct") public Docket activitiApi() { return new Docket(DocumentationType.SWAGGER_2) @@ -142,24 +119,6 @@ .groupName("Flowable妯″潡"); } - @Bean(value = "defaultApiMsi") - public Docket activitiApiMsi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //姝ゅ寘璺緞涓嬬殑绫伙紝鎵嶇敓鎴愭帴鍙f枃妗� - .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.msi")) - //鍔犱簡ApiOperation娉ㄨВ鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。 - .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build() - .securitySchemes(Collections.singletonList(securityScheme())) - .securityContexts(securityContexts()) - .globalOperationParameters(setHeaderToken()) - .groupName("闆嗘垚"); - } - @Bean(value = "defaultApiEam") public Docket activitiApiEam() { return new Docket(DocumentationType.SWAGGER_2) @@ -175,7 +134,43 @@ .securitySchemes(Collections.singletonList(securityScheme())) .securityContexts(securityContexts()) .globalOperationParameters(setHeaderToken()) - .groupName("eam"); + .groupName("EAM璁惧绠$悊"); + } + + @Bean(value = "defaultApiSAP") + public Docket defaultApiSAP() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + //姝ゅ寘璺緞涓嬬殑绫伙紝鎵嶇敓鎴愭帴鍙f枃妗� + .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.sap")) + //鍔犱簡ApiOperation娉ㄨВ鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。 + .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + .paths(PathSelectors.any()) + .build() + .securitySchemes(Collections.singletonList(securityScheme())) + .securityContexts(securityContexts()) + .globalOperationParameters(setHeaderToken()) + .groupName("SAP瀵规帴"); + } + + @Bean(value = "defaultApiMES") + public Docket defaultApiMES() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + //姝ゅ寘璺緞涓嬬殑绫伙紝鎵嶇敓鎴愭帴鍙f枃妗� + .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.mes")) + //鍔犱簡ApiOperation娉ㄨВ鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。 + .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + .paths(PathSelectors.any()) + .build() + .securitySchemes(Collections.singletonList(securityScheme())) + .securityContexts(securityContexts()) + .globalOperationParameters(setHeaderToken()) + .groupName("MES妯″潡"); } /*** diff --git a/src/main/java/org/jeecg/modules/wms/CxfClientUtil.java b/src/main/java/org/jeecg/modules/wms/CxfClientUtil.java new file mode 100644 index 0000000..484d2c9 --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/CxfClientUtil.java @@ -0,0 +1,32 @@ +package org.jeecg.modules.wms; + +import com.alibaba.fastjson.JSONObject; +import org.apache.cxf.endpoint.Client; +import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; + +import javax.xml.namespace.QName; + +/** + * @author Lius + * @date 2024/6/11 10:16 + */ +public class CxfClientUtil { + + /** + * 鍔ㄦ�佽皟鐢� + */ + public static String invokeService(String url, String data, String namespace, String method) throws Exception { + JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); + Client client = dcf.createClient(url); + QName opName = new QName(namespace, method); + Object[] objects = new Object[0]; + try { + objects = client.invoke(opName, data); + } catch (Exception e) { + e.printStackTrace(); + } + String json = JSONObject.toJSONString(objects[0]); + return json; + } + +} diff --git a/src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java b/src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java new file mode 100644 index 0000000..23a94af --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.wms.config; + +public class WebServiceClientConfig { +} diff --git a/src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java b/src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java new file mode 100644 index 0000000..0c818be --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.wms.config; + +import org.apache.cxf.Bus; +import org.apache.cxf.bus.spring.SpringBus; +import org.apache.cxf.jaxws.EndpointImpl; +import org.apache.cxf.transport.servlet.CXFServlet; +import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.xml.ws.Endpoint; + + +@Configuration +public class WebServiceServerConfig { + @Autowired + private ReceiveWMSScanItemListService receiveWMSScanItemListService; + + @Bean(name = "cxfServer") + public Bus springBus() { + return new SpringBus(); + } + + @Bean(name = "cxfServlet") // 娉ㄥ叆servlet bean name涓嶈兘dispatcherServlet ,鍚﹀垯浼氳鐩杁ispatcherServlet + public ServletRegistrationBean<CXFServlet> cxfServlet() { + return new ServletRegistrationBean<CXFServlet>(new CXFServlet(), "/webservice/*"); + } + + @Bean + public Endpoint endpoint() { + // 鍙傛暟浜岋紝鏄疭EI瀹炵幇绫诲璞� + Endpoint endpoint = new EndpointImpl(this.springBus(), receiveWMSScanItemListService); + // 鍙戝竷鏈嶅姟 + endpoint.publish("/userService"); + return endpoint; + } +} diff --git a/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java b/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java new file mode 100644 index 0000000..611bfcd --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.wms.dto; + +public class WSResponse { + private String ErrorCode; + private String ErrorDesc; +} diff --git a/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java b/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java new file mode 100644 index 0000000..a6132e0 --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.wms.request; + +public class ReceiveMESScanItemList { +} diff --git a/src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java b/src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java new file mode 100644 index 0000000..2026d5a --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java @@ -0,0 +1,8 @@ +package org.jeecg.modules.wms.service; + +import javax.jws.WebService; + +@WebService +public interface ReceiveWMSScanItemListService { + +} diff --git a/src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java b/src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java new file mode 100644 index 0000000..94d8dae --- /dev/null +++ b/src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.wms.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; +import org.springframework.stereotype.Service; + +import javax.jws.WebService; + + +@WebService(name = "ReceiveWMSScanItemListService", targetNamespace = "http://xhj008.server.webservice.com") +@Slf4j +@Service +public class ReceiveWMSScanItemListServiceImpl implements ReceiveWMSScanItemListService { +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b365287..509414e 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -283,10 +283,8 @@ client-secret: ?? agent-id: ?? webservice: - url: http://localhost:8081/services/EquipmentService?wsdl - namespace: http://service.server.webservice.example.com - statusMethod: equipmentStatus - rateMethod: equipmentRate + url: http://10.101.0.182:8002/MesWebService/WebService.asmx?wsdl + namespace: http://tempuri.org/ # SAP RFC鏂瑰紡鎺ュ彛闆嗘垚 sap: rfc: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 48063b6..e69e853 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -281,6 +281,9 @@ # appSecret client-secret: ?? agent-id: ?? +webservice: + url: http://10.101.0.182:8002/MesWebService/WebService.asmx?wsdl + namespace: http://tempuri.org/ # SAP RFC鏂瑰紡鎺ュ彛闆嗘垚 sap: rfc: -- Gitblit v1.9.3