cxf动态调用WebService
最近突然发现原来调用webservice服务端如此的方便,于是自己看了看,这种是使用cxf的JaxWsDynamicClientFactory动态调用的,主要时间花在了找包的时间上,另外,这种方式虽然调用方便,但是每一次调用都会扫描到接口中的所有方法,所以叫动态。下面直接看下具体的: import java.util.Map; import javax.jws.WebMethod; @WebService @WebMethod public void writeLogMsg(String msg) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } SysWriteLog.writeLog(msg); } @WebMethod public void writeLogMsg2(String msg,String msg2) { System.out.println("222"); SysWriteLog.writeLog(msg); } } 发布接口 import javax.xml.ws.Endpoint; import com.bing.log.RouteLog; public class LogServer { 2.客户端 package com.bing.util; import org.apache.cxf.endpoint.Client; public class AppUtil { /** * * 远程调用WebService * * @param methodName 方法类型 * @param param 参数 * @return * @throws Exception */ public static Object[] routeServer(String methodName,Object param) throws Exception{ String url = "http://192.168.0.104/routeLog?wsdl"; JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // 策略 httpClientPolicy.setConnectionTimeout( 36000 ); //连接超时 httpClientPolicy.setAllowChunking( false ); httpClientPolicy.setReceiveTimeout( 10000 ); //接收超时 Client client = dcf.createClient(url); HTTPConduit http = (HTTPConduit) client.getConduit(); http.setClient(httpClientPolicy); return client.invoke(methodName,param); } } package com.bing.util; /** } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |