第一步:使用之前需引用以下jar包:

Axis2+RpcClient +json远程调用webservice接口

 

第二步测试代码:

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class WebServiceUtil {
    public static void main(String[] args) {
        String url = "http://IP:port/接口service?wsdl";
        String param = "123";
        String methodName = "method";
        System.out.println(testRPCClient(url, methodName, param));
    }

    @SuppressWarnings("rawtypes")
    public static String testRPCClient(String url, String methodName, String param) {
        String namespace = "WSDL地址里面对应命名空间名称";
        String result = "{}";
        try {
            RPCServiceClient serviceClient = new RPCServiceClient();
            EndpointReference targetEPR = new EndpointReference(url);
            Options options = serviceClient.getOptions();
            options.setTo(targetEPR);
            options.setAction(methodName);
            QName qname = new QName(namespace, methodName);
            Object[] parameters = { param };
            Class[] returnTypes = { String.class };
            Object[] response = serviceClient.invokeBlocking(qname, parameters, returnTypes);
            result = (String) response[0];
        } catch (AxisFault e) {
            e.printStackTrace();
        }
        return result;
    }
}
 

相关文章: