您的位置:首页 > 编程语言 > Java开发

Eclipse + Axis2 开发 WebService

2015-06-24 15:13 489 查看

环境准备

1、本地环境

win7+eclipse(Luna)+jdk1.6+tomcat6

2、下载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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: