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参数指定了生成的一系列文件保存的根目录。