axis2客户端的几种调用方式

(1)使用RPC方式调用WebService

        //  使用RPC方式调用WebService          
        RPCServiceClient serviceClient = new RPCServiceClient();  
        Options options = serviceClient.getOptions();  
        //  指定调用WebService的URL  
        EndpointReference targetEPR = new EndpointReference("http://localhost:8085/axisDemo/services/Calculate?wsdl");  
        options.setTo(targetEPR);  
        //  指定add方法的参数值  
        Object[] opAddEntryArgs = new Object[] {1,2};  
        //  指定Integer方法返回值的数据类型的Class对象  
        Class[] classes = new Class[] {Integer.class};  
        //  指定要调用的add方法及WSDL文件的命名空间  
        QName opAddEntry = new QName("http://test.com", "add");  
        /**
         * 调用add方法并输出该方法的返回值 
         *  invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,
         *  表示要调用的方法名;第二个参数表示要调用的WebService方法的参数值,
         *   参数类型为Object[];  第三个参数表示WebService方法的返回值类型的Class对象,
         *   参数类型为Class[],当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,
         *   而要使用new Object[]{}
         */
        int result=(Integer) serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0];
       //如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,
        //该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同
        // serviceClient.invokeRobust(opName, opAddEntryArgs);
        System.out.println(result);  

 

(2)用wsdl2java命令的方式生成代码

wsdl2java -uri http://localhost:8085/axisDemo/services/Calculate?wsdl -p client -s -o stub

其中-uri参数指定了wsdl文件的路径
  -p参数指定了生成的Java类的包名,

-o参数指定了生成的一系列文件保存的根目录。

posted @ 2015-06-10 23:18  吴伟都  阅读(3387)  评论(0编辑  收藏  举报