最近在研究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();
- }
- }
- }