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--> src/main/java/org/jeecg/config/Swagger2Config.java
@@ -101,29 +101,6 @@ .groupName("MDC"); } /** * swagger2çé ç½®æä»¶ï¼è¿éå¯ä»¥é ç½®swagger2çä¸äºåºæ¬çå å®¹ï¼æ¯å¦æ«æçå çç ï¼DNCï¼ * * @return Docket */ @Bean(value = "defaultApiDnc") public Docket defaultApi3() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //æ¤å è·¯å¾ä¸çç±»ï¼æçææ¥å£ææ¡£ .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() //æ¤å è·¯å¾ä¸çç±»ï¼æçææ¥å£ææ¡£ .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() //æ¤å è·¯å¾ä¸çç±»ï¼æçææ¥å£ææ¡£ .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() //æ¤å è·¯å¾ä¸çç±»ï¼æçææ¥å£ææ¡£ .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模å"); } /*** 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; } } src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,4 @@ package org.jeecg.modules.wms.config; public class WebServiceClientConfig { } 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 ,å¦åä¼è¦çdispatcherServlet public ServletRegistrationBean<CXFServlet> cxfServlet() { return new ServletRegistrationBean<CXFServlet>(new CXFServlet(), "/webservice/*"); } @Bean public Endpoint endpoint() { // åæ°äºï¼æ¯SEIå®ç°ç±»å¯¹è±¡ Endpoint endpoint = new EndpointImpl(this.springBus(), receiveWMSScanItemListService); // åå¸æå¡ endpoint.publish("/userService"); return endpoint; } } 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; } src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,4 @@ package org.jeecg.modules.wms.request; public class ReceiveMESScanItemList { } 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 { } 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 { } 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: 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: