package org.jeecg.modules.wms.controller;
|
|
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.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;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@Api(tags = "WMS集成测试")
|
@RestController
|
@RequestMapping("/wms/client")
|
@Slf4j
|
public class WMSTestController {
|
@Value("${webservice.url}")
|
private String url;
|
@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(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);
|
|
}
|
}
|