| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.cxf.endpoint.Client; |
| | | import org.apache.cxf.frontend.ClientProxy; |
| | | import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; |
| | | import org.apache.cxf.transport.http.HTTPConduit; |
| | | import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.modules.wms.dto.ReceiveMESScanItemListResponse; |
| | | import org.jeecg.modules.wms.request.ReceiveMESScanItemList; |
| | | import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; |
| | | import org.jeecg.modules.wms.WMSWebService; |
| | | import org.jeecg.modules.wms.dto.WSResponse; |
| | | import org.jeecg.modules.wms.request.ReceiveWMSScanItemList; |
| | | import org.jeecg.modules.wms.service.MESWebServiceSoap; |
| | | import org.jeecg.modules.wms.service.WebServiceSoap; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | public class WMSTestController { |
| | | @Value("${webservice.url}") |
| | | private String url; |
| | | @Value("${webservice.namespace}") |
| | | private String namespace; |
| | | @Autowired |
| | | private WMSWebService webService; |
| | | |
| | | private final static String localUrl = "http://localhost:9989/jeecg-boot/webservice/ReceiveWMSScanItemList?wsdl"; |
| | | |
| | | |
| | | @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果") |
| | | @PostMapping("/testReceiveWMSScanItemList") |
| | | public Result<?> testReceiveWMSScanItemList() { |
| | | JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); |
| | | factory.setAddress(url); |
| | | factory.setServiceClass(ReceiveWMSScanItemListService.class); |
| | | ReceiveWMSScanItemListService service = (ReceiveWMSScanItemListService) factory.create(); |
| | | ReceiveMESScanItemList request = new ReceiveMESScanItemList(); |
| | | ReceiveMESScanItemListResponse response = service.receiveWMSScanItemList(request); |
| | | factory.setAddress(localUrl); |
| | | factory.setServiceClass(MESWebServiceSoap.class); |
| | | MESWebServiceSoap service = (MESWebServiceSoap) factory.create(); |
| | | ReceiveWMSScanItemList request = new ReceiveWMSScanItemList(); |
| | | WSResponse response = service.receiveWMSScanItemList(request); |
| | | return Result.ok(response); |
| | | } |
| | | |
| | | @ApiOperation(value = "WMS集成测试-HelloWord测试", notes = "WMS集成测试-HelloWord测试") |
| | | @PostMapping("/testHelloWorld") |
| | | public Result<?> testHelloWorld() { |
| | | // JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); |
| | | // factory.setAddress(url); |
| | | // factory.setServiceClass(WebServiceSoap.class); |
| | | // WebServiceSoap service = (WebServiceSoap) factory.create(); |
| | | // String response = service.helloWorld(); |
| | | // return Result.ok(response); |
| | | WebServiceSoap port = webService.getWebServiceSoap12(); |
| | | // 2. 获取 CXF 底层 Client 对象 |
| | | Client client = ClientProxy.getClient(port); |
| | | |
| | | // 3. 获取 HTTPConduit 并设置超时 |
| | | HTTPConduit http = (HTTPConduit) client.getConduit(); |
| | | HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); |
| | | |
| | | httpClientPolicy.setConnectionTimeout(10 * 1000); // 连接超时 10 秒 |
| | | httpClientPolicy.setReceiveTimeout(300 * 1000); // 读取超时 60 秒(重点!) |
| | | |
| | | http.setClient(httpClientPolicy); |
| | | String result = port.helloWorld(); |
| | | return Result.ok(result); |
| | | |
| | | } |
| | | } |