Eclipse + Axis2 开发 WebService
2015-06-24 15:13
489 查看
环境准备
1、本地环境
win7+eclipse(Luna)+jdk1.6+tomcat62、下载Axis2相关软件包
3、安装eclipse插件
将如下两个zip文件解压后得到的jar文件放到eclipse安装主目录下的plugins子目录下,并重启eclipse即可。axis2-eclipse-codegen-plugin-1.6.2.zip,用来将服务代码生成wsdl文件以及解析将wsdl文件生成客户端代码;
axis2-eclipse-service-plugin-1.6.2.zip,用来将服务代码打包成后缀名为.aar文件。
安装成功,在新建窗口(Ctrl+N)可以看到如下Axis2 Wizards项:
图1. eclipse新建文件向导对话框
服务端开发
1、部署Axis2
首先,解压axis2-1.6.2-war.zip得到axis2.war,并放到%tomcat%\webapps目录下;然后,启动tomcat,并访问:http://localhost:8080/axis2
若显示如下页面,则表示axis2 war包部署成功。
2、编写服务端代码
package wstest; public class MyService { /** * Greeting Service * @return String */ public String greeting(String name){ return "Welcome, "+name; } }
3、制作aar包
在Eclipse new file wizard菜单(见图1),选择Axis2 Service Archiver,然后点击Next。接下来,依次填写Class文件位置、Skip WSDL、选择服务依赖的外部jar包(本案例无需外部依赖Jar)、勾选自动生成service xml,然后在如下页面选择该xml所需要定义的服务名、类名等参数:
其中,Service name,填写服务名;Class name,填写服务代码中定义的类全名。
在方法列表中勾选声明的方法,若列表未显示,可以点击Load按钮自动加载。
接下来,填写输出aar文件的路径、名称。
最后,提示:服务压缩包aar文件生成成功。
查看指定文件夹,发现已经生成了myservice.aar文件。
4、发布服务
将myservice.aar文件放到之前部署的axis2应用的WEB-INF\services\目录下,重启tomcat,即完成了服务发布。发布成功后,页面显示如下:
点击上图的MyService链接(http://localhost:8080/axis2/services/MyService?wsdl),可看到wsdl内容。
至此,即完成了服务端的开发。
客户端开发
1、生成客户端代码
通过Axis2插件,可自动生成客户端代码。在Eclipse new file wizard菜单(见图1),选择Axis2 Code Generator,然后点击Next。
勾选第一个,从wsdl文件生成java source code。在下图wsdl file location中,输入已经发布成功的服务端webservice地址。
设置代码生成器的可选项,此处默认default即可。
设置代码生成后的路径。勾选第一项,并选择当前eclipse workspace中的工程wsclient(这是提前创建好的一个测试用project)。
点击完成,即开始代码生成过程。
生成完毕后,刷新wsclient工程,可以看到:
配置buildpath,之前下载的axis2-1.6.2-bin.zip文件中lib目录下的所有Jar包,都添加到class path中。配置完毕后,工程即编译成功。
2、编写测试代码调用web服务
package test; import java.rmi.RemoteException; import wstest.*; public class TestWS { public static void main(String[] args) throws RemoteException { MyService ws = new MyServiceStub(); Greeting greeting = new Greeting(); greeting.setName("Simon"); //调用WebService GreetingResponse greetingResponse = ws.greeting(greeting); System.out.println(greetingResponse.get_return()); } }
输出内容:
Welcome, Simon
至此,WebService客户端调用成功。
问题记录
1. eclipse编译时jdk版本问题
报错信息:Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
原因:jdk版本问题,本地环境原来为win7 + jdk1.7,与tomcat运行时默认使用的jdk版本1.6不一致。
解决办法:修改项目java compiler的方法:在项目点右键->选择Perperties->在出现的菜单中选择Java Compiler->最上面选中Enable project Specific setting->然后将jdk改为jdk1.6即可。
参考文档
Apache axis2 + Eclipse 开发 WebService相关文章推荐
- java web工程与java工程的区别_待
- 25、java中观察者模式Observable和Observer
- java 常用
- java学习笔记
- Java中Calendar.DAY_OF_WEEK需要减一的原因
- 尚学堂Spring视频教程(二):Spring控制反转
- springmvc中@PathVariable和@RequestParam的区别
- java future模式 所线程实现异步调用(转载
- Java final 关键字 & 参数传递特点
- Spring Struts整合
- 深入研究java.lang.ThreadLocal类
- 最全SpringMVC详细示例实战教程
- SpringMVC整合Quartz实现定时任务---简单的例子
- spring IOC依赖注入
- 进击的java(7):spring mvc 登录系统
- Spring IOC体验之—如何依赖注入
- java中的json
- Java Json开源解析包 google-gson download(下载)
- 我的Java开发学习之旅------>Java经典排序算法之二分插入排序
- MyBatis JavaType JdbcType