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.ReceiveMESScanItemListResponse;
|
import org.jeecg.modules.wms.request.ReceiveMESScanItemList;
|
import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService;
|
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;
|
|
|
@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);
|
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.getWebServiceSoap();
|
// 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);
|
|
}
|
}
|