package com.lanp.clients;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloWorldWSDDClient {
public static void main(String[] args) throws ServiceException, RemoteException {
//webService访问地址
String url = "http://127.0.0.1:8080/myaxis/services/HelloWorldWSDD";
//创建服务
Service service = new Service();
//创建调用句柄
Call call = (Call) service.createCall();
//设置请求地址
call.setTargetEndpointAddress(url);
/**
* 设置调用的方法和方法的命名空间;
* 当然null也可以,因为本身它就没有设置命名空间,一般方法的命名空间是
* 包名倒写组成
*/
call.setOperationName(new QName("http://services.lanp.com", "getName"));
/**
* 用call调用getName方法,设置请求的参数,返回的就是返回值了
*/
String result = (String) call.invoke(new Object[] { "蓝飘" });
System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString());
System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString());
System.out.println(result);
call.setOperationName(new QName("http://services.lanp.com", "getAge"));
/** * 用call调用getAge方法,设置请求的参数,返回的就是返回值了 */
int resultAge = Integer.parseInt(call.invoke(new Object[] { 89 }).toString()); //服务器端+10
System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString());
System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString());
System.out.println(resultAge);
}
}