1 import org.apache.cxf.endpoint.Client;
2
3 import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
4 import org.apache.cxf.transport.http.HTTPConduit;
5 import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
6
7 import com.alibaba.fastjson.JSONObject;
8
9 /**
10 * @Description: webservice客户端调用工具类
11 * @CreateDate: 2019/6/18 14:13
12 * @Version: 1.0
13 */
14 public class WSClientUtil {
15 /*public static String clientInvokeWebServiceAxis(String wsdlURL, String nameSpace, String operationName,
16 * webservice客户端调用方法
17 * @param wsdlURL 服务提供地址
18 * @param nameSpace 命名空间
19 * @param operationName 方法名
20 * @param paremateNames 参数名
21 * @param paremateValues 参数值
22 * @return: java.lang.String 返回json字符串
23 * @create: 2019/6/27 10:39
24 * @version: 1.0
25 String[] paremateNames, Object[] paremateValues) throws RemoteException, ServiceException,
26 MalformedURLException {
27 Service service = new Service();
28 Call call = (Call)service.createCall();
29 call.setOperationStyle(Style.WRAPPED);
30 call.setOperationUse(Use.LITERAL);
31 call.setOperationName(new QName(nameSpace, operationName));
32 call.setUseSOAPAction(true);
33 call.setSOAPActionURI(nameSpace + "/" + operationName);
34 call.setEncodingStyle("UTF-8");
35 for (int i = 0; i < paremateNames.length; i++) {
36 call.addParameter(new QName(nameSpace, paremateNames[i]), XMLType.XSD_STRING, ParameterMode.IN);
37 }
38 call.setReturnType(XMLType.XSD_STRING);
39 call.setTargetEndpointAddress(new URL(wsdlURL));
40 Object returnObj = call.invoke(paremateValues);
41 String jsonStr = JSONObject.toJSONString(returnObj);
42 return jsonStr;
43 }*/
44 /**
45 * webservice客户端调用方法
46 * @param wsdlURL 服务提供地址
47 * @param operationName 方法名
48 * @param params 参数值
49 * @return: java.lang.String
50 * @create: 2019/6/27 13:15
51 * @version: 1.0
52 */
53 public static String clientInvokeWebService(String wsdlURL, String operationName, Object... params) throws Exception {
54 JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
55 Client client = clientFactory.createClient(wsdlURL);
56 HTTPConduit conduit = (HTTPConduit)client.getConduit();
57 HTTPClientPolicy policy = new HTTPClientPolicy();
58 policy.setConnectionTimeout(100000);//设置超时时间
59 policy.setReceiveTimeout(100000);//设置超时时间
60 conduit.setClient(policy);
61 Object[] objects = client.invoke(operationName, params);
62 return JSONObject.toJSONString(objects[0].toString());
63 }
64 }