Java如何访问Axis2服务端

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 WSClient {

    /**
     * @param args
     */
    
    //通过webservice获得密码的方法
    public String getPassword(String userName,String envType){
        String result="";
        String serviceUrl="http://localhost/axis2/services/GetPassword";
        try {
        //  使用RPC方式调用WebService          
            RPCServiceClient serviceClient = new RPCServiceClient();  
            Options options = serviceClient.getOptions();  
            //  指定调用WebService的URL  
            EndpointReference targetEPR = new EndpointReference(serviceUrl);
            options.setTo(targetEPR);
            //  指定getPsw方法的参数值  
            Object[] opAddEntryArgs = new Object[] {userName,envType};  
            //  指定getPsw方法返回值的数据类型的Class对象  
            Class[] classes = new Class[] {String.class};  
            //  指定要调用的getPsw方法及WSDL文件的命名空间  
            QName opAddEntry = new QName("http://ws.apache.org/axis2", "getPsw");
            
            //  调用getPsw方法并输出该方法的返回值  
            
            result = serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0].toString() ;
            //System.out.println("---------------Password--------------"+result);
            
        }
        catch (AxisFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
        return result;
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String userName="Test";
        String envType="Test";
        String s ="";
        WSClient wsClinet = new WSClient();
        s = wsClinet.getPassword(userName, envType);
        System.out.println("-------Jake Yu S------------"+s);
        
/*        
        try {
            //  使用RPC方式调用WebService          
                RPCServiceClient serviceClient = new RPCServiceClient();  
                Options options = serviceClient.getOptions();  
                //  指定调用WebService的URL  
                EndpointReference targetEPR = new EndpointReference(  
                        "http://localhost/axis2/services/GetDBStatus");  
                options.setTo(targetEPR);  
                //  指定sayHelloToPerson方法的参数值  
                Object[] opAddEntryArgs = new Object[] {""};  
                //  指定sayHelloToPerson方法返回值的数据类型的Class对象  
                Class[] classes = new Class[] {String.class};  
                //  指定要调用的sayHelloToPerson方法及WSDL文件的命名空间  
                QName opAddEntry = new QName("http://ws.apache.org/axis2", "getStatus");  
                //  调用sayHelloToPerson方法并输出该方法的返回值  
                System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
            } catch (AxisFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  */
        
    }

}


备注:需要导入Axis2中所有的包.

原文地址:https://www.cnblogs.com/riskyer/p/3243770.html