webservice 客户端调用--axis

package com.morning.webservice.client.test;

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

public static void main(String[] args) throws AxisFault {

testSayHello();

}

private static void testSayHello() throws AxisFault {

//输入参数

Object[] opSayHelloArgs = new Object[]{"Mr Chen"};

//输出结果是String类型

Class[] returnTypes = new Class[]{String.class};

RPCServiceClient serviceClient = new RPCServiceClient();

//EndpointReference 和 QName 我们都可以从 WSDL 中得到

String address = "http://127.0.0.1:8080/axis2/services/AxisService";

EndpointReference targetEPR = new EndpointReference(address);

Options options = serviceClient.getOptions();

options.setTo(targetEPR);

//调用webService服务,传递操作名称QName,操作所需参数,返回类型,获得返回结果

//这个调用封装了发起soap请求访问webserive与解析soap响应结果的解析

QName opSayHello = new QName("http://service.axis.morning.com","sayHello");

Object[] response = serviceClient.invokeBlocking(opSayHello, opSayHelloArgs, returnTypes);

String result = (String) response[0];

System.out.println(result);

}

}

相关推荐