新火炬后端单体项目初始化代码
zhangherong
4 天以前 694ef7f821e9178fcf8569a0249b4ba96a4541fa
art: WebService集成
已添加7个文件
已修改4个文件
211 ■■■■ 文件已修改
pom.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/config/Swagger2Config.java 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/CxfClientUtil.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/WSResponse.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: