1. 程式人生 > >webservice RPC客戶端

webservice RPC客戶端

class 1

import javax.xml.namespace.QName; import org.apache.axiom.om.OMElement; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger;

public class Axis2Connector {   private static final Logger logger = Logger.getLogger(Axis2Connector.class);   private static RPCServiceClient client;   private static String wsUrl;      public static synchronized RPCServiceClient getClient(String wsdl)   {     try     {       if (StringUtils.isNotBlank(wsdl))       {         if (!wsdl.equals(wsUrl))         {           wsUrl = wsdl;           client = new RPCServiceClient();                      EndpointReference reference = new EndpointReference(wsdl);           Options options = client.getOptions();                      options.setTo(reference);         }       }       else {         client = null;       }     }     catch (Exception e)     {       client = null;       logger.error("init axis2 client [" + wsdl + "] failed!!!!", e);     }     return client;   }      public static synchronized String excute(String wsdl, String namespace, String operationName, Object[] params)   {     String resp = "";     try     {       RPCServiceClient rpcClient = getClient(wsdl);       QName qName = new QName(namespace, operationName);              OMElement element = rpcClient.invokeBlocking(qName, params);       resp = element.getFirstElement().getText();     }     catch (Exception e)     {       logger.error("invoke axis2 interface method [" + operationName + "] failed!!!!", e);     }     return resp;   } }

class 2 

public class Test implements Runnable{     public static void main(String[] args) {         for(int i=0;i<10;i++){             new Thread(new Test()).start();         }     }

    @Override     public void run() {         // TODO Auto-generated method stub         String wsdl="http://localhost:8081/TrafficWFGC/services/Water.WaterHttpSoap12Endpoint/";         String namespace="http://imp.service";         String operationName="uploadWaterData";         String []params={"2","0d721bba448c40d385eaa4d8ddf6658a"};         while(true){             Axis2Connector.excute(wsdl, namespace, operationName, params);         }     } }