`

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

   

     File - New - Other 可以找到:

     

二、部署axis2 war

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

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

 

三、编写服务代码

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



 

class file location:为刚刚写的Axis2WB类所在工程的bin目录

 

选择skip wsdl

 

如果你的Axis2WB有引用jar包,则在这里选择。我写的没有,所以next

 

由于我们没有编写service.xml,所以勾选让它自动生成,next

 

输入服务名称(自定义)、类全名、点击load将方法名查出来、选择Search declared methods only,就会看到我们定义的方法,勾选上

 

设置aar文件名以及存放目录(我是放在桌面)--Finish:

 

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



 

 

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

 

五、发布

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

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



 



 

六、生成客户端代码

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

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



 

 Generate Java source code from a WSDL file:根据WSDL生成webservice客户端的java代码。(在这里,我们选择这个)

 



 

默认就行:

 

选择客户端项目:

 



 

点击Finish生成代码,将下载的axis2中的lib包加载到项目中,就不报错了

 

客户端代码:

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());
	}
}

 

结果:



 

  • 大小: 20.9 KB
  • 大小: 25.8 KB
  • 大小: 81.5 KB
  • 大小: 64.9 KB
  • 大小: 31 KB
  • 大小: 29 KB
  • 大小: 23 KB
  • 大小: 25.6 KB
  • 大小: 59.7 KB
  • 大小: 56.4 KB
  • 大小: 55.3 KB
  • 大小: 5.2 KB
  • 大小: 17.8 KB
  • 大小: 41.9 KB
  • 大小: 32.1 KB
  • 大小: 51.3 KB
  • 大小: 63.6 KB
  • 大小: 24.1 KB
  • 大小: 21.4 KB
  • 大小: 41.3 KB
  • 大小: 42.2 KB
  • 大小: 34.6 KB
  • 大小: 25.5 KB
  • 大小: 72.1 KB
分享到:
评论
1 楼 fang2030 2016-07-25  
我特别好奇你所说的   class file location:为刚刚写的Axis2WB类所在工程的bin目录

的bin目录是什么

相关推荐

Global site tag (gtag.js) - Google Analytics