创建一个新的tomcat工程,将解压后的war文件WEB-INF下的所有文件(除classes外),并axis2-web所有目录放到工程根目录下
结构下图
注: 此时,如果操作没有错误的话启动tomcat服务,访问你会看到这样一个页面(确保存在services/version-1.5.5.arr(*.arr)这个文件
2.点击Version进入,如果看到下图,此时说明WS所需的文件你已经放入工程中。
3创建接口类package org.hzq.ws; public class UserInfoManager { public String getUserInfo(Student student){ System.out.println(student); return student + " : hello world !!"; } }
4.
这里演示将一个对象作为参数package org.hzq.ws; import java.util.Calendar; public class Student { private Integer id; private String name; private String password; private Calendar birthDay; public Calendar getBirthDay() { return birthDay; } public void setBirthDay(Calendar birthDay) { this.birthDay= birthDay; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "Student [birthDay=" + birthDay + ", id=" + id + ", name=" + name + ", password=" + password + "]"; } }注:以下主要是用axis2的eclispe插件生成相关代码和发布这个服务。
5.选中项目右键,在菜单中选择新建->other...->Axis2 Service Archiver
6.按照图片点击即可
7.
下一步:
图1 。。。 图n
看到该步骤最后一步,你应该会在桌面看到一个ws.aar的文件,将这个文件复制到项目WEB-INF/ services/目录下
8.此时再次启动tomcat服务,访问出现这个页面说明你已经部署成功
9.
根据ws.arr文件生成,右键项目,>other...->Axis2 Service Archiver
如下图:
两者任选一种,我比较喜欢第二种,可以自定义一些东西,而起生成的文件还少
10.启动服务后,访问服务可以得到wsdl文件
11选择生成路径
12提示成功即已经完成,查看输出目录生成*Stu.java的文件既为客户端的代码测试public static void main(String[] args) throws RemoteException { String path = "http://localhost:8080/ws/services/ws?wsdl"; WsStub stub = new WsStub(path); stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(1000*200);//配置连接时间 WsStub.GetU
serInfo getUserInfo = new WsStub.GetUserInfo(); WsStub.Student student = new WsStub.Student(); student.setId(1000); student.setName("first ws"); student.setPassword("shanghai"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.MONTH, -1); student.setBirthDay(c); getUserInfo.setStudent(student); WsStub.GetUserInfoResponse response = stub.getUserInfo(getUserInfo); System.out.println("Test :" + response.get_return()); }Web Services 有一个问题,不知道是bug还是怎么地,数据类型不能为date类型,不过还好可以用Calendar代替,一样可以完成想要的结果。