最近准备用Axis2做WebService的开发,期间也碰到一些坑爹的问题,在MyEclipse10下安装最新的Axis2插件,不知道是不是人品问题还是插件的兼容性不太给力都没有成功,只能使用低版本的Axis2。
新版的Axis2插件下载地址:http://axis.apache.org/axis2/java/core/tools/index.html
一、MyEclipse 下Axis2插件的下载和安装:
(1)下载地址MyEclipse Axis2插件
下载axis2-1.5.1-war.zip 和 axis2-1.5.1-bin.zip (2)解压插件 ($ECLIPSE_HOME表示你安装的myeclipse主目录)
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library> 到plugin.xml文件中,并将将version="1.3.0"改为version="1.4.0"保存!
Step2:将Axis2_Codegen_Wizard_1.3.0改为Axis2_Codegen_Wizard_1.4.0
二、Axis2 Webservice 简单例子:
1、New 一个Web Project项目Axis2Service,创建User.java<span style="font-size:18px;font-style: normal;">public class User implements Serializable{
private static final long serialVersionUID = -8428746819403017248L;
private int id;
private String name;
private int age;
//生成getter、setter方法省略
}</span>
2、创建service,用于发布 UserService.java
<span style="font-size:18px;font-style: normal;">public class UserService {
public String getGreetin(String name){
return "Welcome:"+ name;
}
public String addUser(User user){
if(null != user){
return "你好"+ user.getName();
}
return "user is null";
}
public User queryUser(){
User user = new User();
user.setId(1000120);
user.setName("李亦非");
user.setAge(27);
return user;
}
public String addUsers(User[] users){
if(null != users){
return "Welcome:" + Arrays.toString(users);
}
return "users is null";
}
public User[] queryUsers(){
User[] users = new User[2];
User user1 = new User();
user1.setId(1000120);
user1.setName("zhang fei");
user1.setAge(1000);
User user2 = new User();
user2.setId(1000121);
user2.setName("zhao yun");
user2.setAge(995);
users[0]=user1;
users[1] = user2;
return users;
}
}</span>
3、发布service
(1)右键工程名称Axis2Service->New->Other,选择Axis2 Service Archiver,
浏览器输入http://localhost:8080/axis2/services/UserService?wsdl 出现如下图,说明发布成功。
点击Next ,
package com.test;
import com.axis2.service.UserServiceStub;
import com.axis2.service.UserServiceStub.GetGreetin;
import com.axis2.service.UserServiceStub.GetGreetinResponse;
public class TestUserSerivce {
public static void main(String[] args) throws Exception {
UserServiceStub stub = new UserServiceStub();
UserServiceStub.GetGreetin getGreeting = new GetGreetin();
getGreeting.setName("zhaoyun");
GetGreetinResponse gRes = stub.getGreetin(getGreeting);
//接收方法返回值
String getResult = gRes.get_return();
System.out.println(getResult);
}
}
运行程序,输出 Welcome:zhaoyun 则成功!三、生成客户端java文件的其他方式:
(1)、进入cmd命令窗口,切换到Axis2-1.5.1\bin 目录下,输入 wsdl2java -uri http://localhost:8080/axis2/services/UserService?wsdl -p com.axis2.clientset Axis_Lib=E:\myworkspace10\Axis2Client\WebRoot\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\Axis2Client
set Package=com.axis2.client
%Java_Cmd% org.apache.axis2.wsdl.WSDL2Java -o %Output_Path% -p %Package% -uri http://localhost:8080/axis2/services/UserService?wsdl
pause
其中 E:\myworkspace10\Axis2Client\WebRoot\WEB-INF\lib 是新建的客户端项目下的jar包目录,
D:\Axis2Client 是指向生成代码的文件目录,com.axis2.client 是指向代码生成目录的包名
运行编写好的批处理文件(buildWebserviceClient.bat),会在指定的目录下生成java文件。