最近在研究webservice,axis2是其中一种实现方式。先做个小例子
1、下载axis2
http://axis.apache.org/axis2/java/core/download.cgi我这里下载的是
axis2-1.6.2-bin.zip
axis2-1.6.2-src.zip
axis2-1.6.2-war.zip
axis2-1.6.2-docs.zip
其实主要下载axis2-1.6.2-bin.zip和axis2-1.6.2-war.zip,然后解压它们
2、把axis2-1.6.2-war.zip解压的axis2.war,放到tomcat的webapps目录下。
3、启动tomcat即可,输入http://localhost:9080/axis2/(注意你自己端口号)
能显示正确页面即可。
4、Hello.java
注意没有package
public class Hello {
public String sayHello(String name){
return "你好,"+name;
}
}
直接把该类的class文件放在%tomcat_home%\webapps\axis2\WEB-INF\pojo
启动tomcat,点击service,即可看到该服务Hello
或者输入
http://localhost:9080/axis2/services/Hello?wsdl。
5、客户端调用此方法
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 TestHello {
public static void main(String[] args) {
String url="http://localhost:9080/axis2/services/Hello";
QName qName=new QName("http://ws.apache.org/axis2","sayHello");
//其中第一个参数值为访问url的targetNamespace
try {
//指定调用webservice的URL
RPCServiceClient client = new RPCServiceClient();
Options option=client.getOptions();
指定调用webservice的URL
option.setTo(new EndpointReference(url));
//设置输入参数
Object[] input=new Object[]{"大兵哥"};
//设置返回类型
Class[] output=new Class[]{String.class};
//返回值
Object[] returnValue=client.invokeBlocking(qName, input, output);
System.out.println(returnValue[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:你好,大兵哥