package com.test;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import com.test.webservice.entity.Users;
public class callWebService {
public callWebService() {
}
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/myobj/services/MyTestServices?wsdl";
//直接引用远程的wsdl文件
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("checkRequest");//WSDL里面描述的接口名称
call.addParameter("requestParam", org.apache.axis.encoding.XMLType.XSD_ANYTYPE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
Users users = new Users();
users .setUserName("heisetoufa");
users .setPassWord("123456");
String result = (String)call.invoke(new Object[]{users});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
其中:
1.客户端调用的时候必须有一个Users实体类
2.addParameter()方法中的第二个参数类型需要设置成XSD_ANYTYPE类型
传List,Map等类型也是XSD_ANYTYPE
黑色头发:http://heisetoufa.iteye.com/