axis2+eclipse 开发webservice

        原帖:请看这里

        我在这篇博文的基础上实践了一把。

        一、下载

        下载页面:http://axis.apache.org/axis2/java/core/download.cgi

         Apache Axis2 Binary Distribution(1.6.2):http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip  

 

        WAR Distribution:http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip(这个可以管理我们的webservice的服务)

        Eclipse 插件:

Service Archive Wizard - Eclipse Plug-in(用来将服务代码打包成后缀名为.aar文件的插件):

http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip
Code Generator Wizard - Eclipse Plug-in(用来将服务代码生成wsdl文件以及解析将wsdl文件生成客户端代码的插件):

http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-codegen-plugin-1.6.2.zip

安装插件:

我这里用的是eclipse3.7 indigo,以我的环境为例:将两个插件解压后放到eclipse安装目录下的dropins目录下面,启动Eclipse

axis2+eclipse 开发webservice_第1张图片

   

     File - New - Other 可以找到:

     axis2+eclipse 开发webservice_第2张图片

二、部署axis2 war

解压下载的axis2-1.6.2-war.zip 得到一个axis2.war文件,将这个文件丢到tomcat\webapps目录,启动tomcat  访问http://localhost:8080/axis2

看到如下界面,部署成功。

axis2+eclipse 开发webservice_第3张图片

 

三、编写服务代码

package test;

public class Axis2WB {
	/**
	 * 提供了一个说Hello的服务
	 * @return
	 */
	public String sayHello(String name){
		return "Hello "+name;
	}
	
	/**
	 * 提供了一个做加法的服务
	 * @param a
	 * @param b
	 * @return
	 */
	public int add(int a,int b){
		return a + b;
	}
	
}

 四、将服务代码打包成arr文件:

 

 Eclipse菜单- New - File - Other -Axis2 Service Archiver


axis2+eclipse 开发webservice_第4张图片
 

class file location:为刚刚写的Axis2WB类所在工程的bin目录
axis2+eclipse 开发webservice_第5张图片
 

选择skip wsdl
axis2+eclipse 开发webservice_第6张图片
 

如果你的Axis2WB有引用jar包,则在这里选择。我写的没有,所以next
axis2+eclipse 开发webservice_第7张图片
 

由于我们没有编写service.xml,所以勾选让它自动生成,next
axis2+eclipse 开发webservice_第8张图片
 

输入服务名称(自定义)、类全名、点击load将方法名查出来、选择Search declared methods only,就会看到我们定义的方法,勾选上
axis2+eclipse 开发webservice_第9张图片
 

设置aar文件名以及存放目录(我是放在桌面)--Finish:
axis2+eclipse 开发webservice_第10张图片
 

完成后,可以看到桌面上多了一个test_service.aar文件,我们用winrar打开:


axis2+eclipse 开发webservice_第11张图片
 
axis2+eclipse 开发webservice_第12张图片
 

有没有感觉很眼熟?很像一个jar包、我们点击META-INF目录进去,可以看到插件给我们生成的一个service.xml,打开看看(是不是明白插件做了些啥了):
axis2+eclipse 开发webservice_第13张图片
 

五、发布

将test_service.aar文件丢到之前部署的axis2应用的WEB-INF\services\目录下面,重启tomcat

再访问http://localhost:8080/axis2/   点击Service


axis2+eclipse 开发webservice_第14张图片
 


axis2+eclipse 开发webservice_第15张图片
 
axis2+eclipse 开发webservice_第16张图片
六、生成客户端代码

通过axis2 的Eclipse插件生成客户端代码:

Eclipse菜单-File-New-Other-Axis2 Code Generator


axis2+eclipse 开发webservice_第17张图片
 

 Generate Java source code from a WSDL file:根据WSDL生成webservice客户端的java代码。(在这里,我们选择这个)
axis2+eclipse 开发webservice_第18张图片
 


axis2+eclipse 开发webservice_第19张图片
 

默认就行:
axis2+eclipse 开发webservice_第20张图片
 

选择客户端项目:
axis2+eclipse 开发webservice_第21张图片
 


axis2+eclipse 开发webservice_第22张图片
 

点击Finish生成代码,将下载的axis2中的lib包加载到项目中,就不报错了
axis2+eclipse 开发webservice_第23张图片
 

客户端代码:

package mytest;

import java.rmi.RemoteException;

import test.Add;
import test.AddResponse;
import test.SayHello;
import test.SayHelloResponse;
import test.TestServiceStub;


public class Test {
	public static void main(String[] args) throws RemoteException {
		//创建客户端对象
		TestServiceStub axis2wb = new TestServiceStub();
		
		//new一个调用sayHello方法需要的参数SayHello,并且设置name
		SayHello sayHello = new SayHello();
		sayHello.setName("zeromike");
		//调用web服务
		SayHelloResponse sayHelloResponse = axis2wb.sayHello(sayHello);
		//拿到返回结果
		System.out.println(sayHelloResponse.get_return());
		
		
		Add add = new Add();
		add.setA(10);
		add.setB(3);
		AddResponse addResponse = axis2wb.add(add);
		System.out.println(addResponse.get_return());
	}
}

 

结果:


axis2+eclipse 开发webservice_第24张图片
 

你可能感兴趣的:(webservice)