1. 服务端
package ws;
public class Hello {
public String sayHello(String user) {
return "Hello," + user + ",Welcome to Webservice Center ";
}
public int SumMtoN(int x, int y) {
int iSum = 0;
for (int i = x; i <= y; i++) {
iSum += i;
}
return iSum;
}
}
2.部署方法
基于Axis2 Service Archiver进行发布,生成服务名称是wshello的wshello.aar文件[服务名和文件名可以不相同]
放入 xxxx/Tomcat 7.0/webapps/axis2/WEB-INF\/services中
3.客户端调用
需要导入axis2的一些jar,我是分不清楚那些需要,那些不需要,直接把axis2的lib中的jar包一股脑全干进来。。。。。
package haha;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class MyFirst {
public static void main(String[] args) throws Exception
{
//使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference("http://172.17.5.139/axis2/services/wshello");
options.setTo(targetEPR);
// 指定SumMtoN方法的参数值
Object[] opAddEntryArgs = new Object[] {1,10};
// 指定SumMtoN方法返回值的数据类型的Class对象
Class<?>[] classes = new Class<?>[] {String.class};
// 指定方法所在的WSDL文件的命名空间及方法名SumMtoN
QName opAddEntry = new QName("http://ws", "SumMtoN");
// 调用SumMtoN方法并输出该方法的返回值
System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
}
}
4.输出结果
log4j:WARN No appenders could be found for logger (org.apache.axis2.context.AbstractContext).
log4j:WARN Please initialize the log4j system properly.
55