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);
}
}
}