Axis2 java WebServices开发三POJO (续)
2009-11-10 23:28
267 查看
上篇日志调用ws使用的是RPCServiceClient 能够对VO(pojo)进行自动xml-bean的封装操作。ws传给客户端的都是xml配置文件
这里使用axis data bounding 来生成客户端代码进行测试,测试了一晚上发现axis的ADB类型的客户端似乎不支持list数据的绑定同时对于object类的方法 hashcode和tostring方法也不会调用服务端的API进行封装,这里将上篇中的三个类做一些小的改动
User类
UserDAO类:
UserService类:
参照日志:http://blog.csdn.net/a276202460/archive/2009/10/27/4734878.aspx 生成ADB类型的客户端API
编写测试类:
启动ws以后运行测试类 输入结果应该和上一篇日志的结果相同:
这里使用axis data bounding 来生成客户端代码进行测试,测试了一晚上发现axis的ADB类型的客户端似乎不支持list数据的绑定同时对于object类的方法 hashcode和tostring方法也不会调用服务端的API进行封装,这里将上篇中的三个类做一些小的改动
User类
/* *Class User.java *Create Date: 2009-11-4 *Author:a276202460 */ package com.axis.pojo.test; public class User implements java.io.Serializable{ public boolean equals(Object obj) { if (obj == null) { return false; } if (obj instanceof User) { User user = (User) obj; if (user.getUserid() == this.getUserid()) { return true; } } return false; } public String toString() {//ADB绑定数据的时候无效 return (username == null ? "" : username) + " " + (sex == null ? "" : sex) + " " + age + "岁"; } public String getDesp() {//增加此方法方便打印 return (username == null ? "" : username) + " " + (sex == null ? "" : sex) + " " + age + "岁"; } public User(){ } int userid; String username; int age; String sex; public User(int userid, String username, int age, String sex) { this.setUserid(userid); this.setUsername(username); this.setAge(age); this.setSex(sex); } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
UserDAO类:
/* *Class UserDAO.java *Create Date: 2009-11-4 *Author:a276202460 */ package com.axis.pojo.test.dao; import java.util.List; import com.axis.pojo.test.User; public interface UserDAO { public String addUser(User user) throws java.rmi.RemoteException; public User getUser(int userid) throws java.rmi.RemoteException; public String deleteUser(User user) throws java.rmi.RemoteException ; public String updateUser(User user) throws java.rmi.RemoteException ; public User[] getAllUser() throws java.rmi.RemoteException; //将返回类型修改为固定类型的数组 }
UserService类:
/* *Class UserService.java *Create Date: 2009-11-4 *Author:a276202460 */ package com.axis.pojo.test.dao.impl; import java.rmi.RemoteException; import java.util.List; import com.axis.pojo.test.User; import com.axis.pojo.test.dao.UserContainer; import com.axis.pojo.test.dao.UserDAO; import com.axis.pojo.test.dao.Exception.UserServiceException; public class UserService implements UserDAO{ public String addUser(User user) throws java.rmi.RemoteException{ if(UserContainer.userlist.indexOf(user) != -1){ throw new RemoteException("重复的userid"); } UserContainer.userlist.add(user); return null; } public String deleteUser(User user) throws java.rmi.RemoteException { if(UserContainer.userlist.indexOf(user) == -1){ throw new RemoteException("userid not exists"); } UserContainer.userlist.remove(user); return null; } public User[] getAllUser() throws java.rmi.RemoteException { User[] users = new User[UserContainer.userlist.size()]; for(int i = 0 ;i < UserContainer.userlist.size();i++){ users[i] = (User)UserContainer.userlist.get(i); } return users; } public User getUser(int userid) throws java.rmi.RemoteException { User user = new User(); user.setUserid(userid); int i = UserContainer.userlist.indexOf(user); if(i == -1){ throw new RemoteException("userid not exists"); } return (User)UserContainer.userlist.get(i); } public String updateUser(User user) throws java.rmi.RemoteException{ int i = UserContainer.userlist.indexOf(user); if(i == -1){ throw new RemoteException("userid not exists"); } UserContainer.userlist.set(i, user); return null; } }
参照日志:http://blog.csdn.net/a276202460/archive/2009/10/27/4734878.aspx 生成ADB类型的客户端API
编写测试类:
/* *Class UserDAO.java *Create Date: 2009-11-9 *Author:a276202460 */ package com.axis.pojo.test.dao.impl.client; import org.apache.axis2.AxisFault; import com.axis.pojo.test.dao.impl.UserServiceStub; public class UserDAO { public static void main(String[] s) throws AxisFault{ UserServiceStub stub = new UserServiceStub("http://localhost:8080/axis2/services/UserService"); UserServiceStub.User user = getUser(stub,0); System.out.println(user); user = getUser(stub,1); user.setAge(200); System.out.println(updateUser(stub,user)); UserServiceStub.User user1 = getUser(stub,1); System.out.println(user1 == null?null:user1.getDesp()); System.out.println(deleteUser(stub,user)); System.out.println(deleteUser(stub,user)); System.out.println(updateUser(stub,user)); printAllUser(stub); } public static String addUser(UserServiceStub stub,UserServiceStub.User user){ UserServiceStub.AddUser adduserreq= new UserServiceStub.AddUser(); adduserreq.setUser(user); String rs = "Add user Success"; try { stub.addUser(adduserreq); } catch (Exception e) { rs = e.getMessage(); } return rs; } public static String deleteUser(UserServiceStub stub,UserServiceStub.User user){ String rs = "Delete user Success"; UserServiceStub.DeleteUser deleteuserreq = new UserServiceStub.DeleteUser(); deleteuserreq.setUser(user); try { stub.deleteUser(deleteuserreq); } catch (Exception e) { rs = e.getMessage(); } return rs; } public static void printAllUser(UserServiceStub stub){ try { // UserServiceStub.GetAllUser getalluserreq = new UserServiceStub.GetAllUser(); //getalluserreq.setIndex(1); UserServiceStub.GetAllUserResponse getalluserres = stub.getAllUser(); UserServiceStub.User[] users = getalluserres.get_return(); for(int i = 0 ;users != null && i < users.length;i++){ System.out.println(users[i].getDesp()); } } catch (Exception e) { e.printStackTrace(); } } public static String updateUser(UserServiceStub stub,UserServiceStub.User user){ String rs = "Update User Success"; UserServiceStub.UpdateUser updateuserreq = new UserServiceStub.UpdateUser(); try { stub.updateUser(updateuserreq); } catch (Exception e) { rs = e.getMessage(); } return rs; } public static UserServiceStub.User getUser(UserServiceStub stub,int userid){ UserServiceStub.User user = null; UserServiceStub.GetUser getuserreq = new UserServiceStub.GetUser(); getuserreq.setUserid(userid); try { UserServiceStub.GetUserResponse getuserres = stub.getUser(getuserreq); user = (UserServiceStub.User)getuserres.get_return(); } catch (Exception e) { System.out.println(e.getMessage()); } return user; } }
启动ws以后运行测试类 输入结果应该和上一篇日志的结果相同:
userid not exists null userid not exists a276202460 男 24岁 Delete user Success userid not exists userid not exists richqin 男 24岁 csdn 男 24岁 java 男 24岁 j2ee 男 24岁
相关文章推荐
- Axis2 java WebServices开发三POJO
- Axis2 java WebServices开发一
- Java web开发中的各种bean对应的术语(VO,PO,BO,QO, DAO,POJO,DTO)
- Java web开发中的各种bean对应的术语(VO,PO,BO,QO, DAO,POJO,DTO)
- Java web开发中的各种bean对应的术语(VO,PO,BO,QO, DAO,POJO,DTO)
- JAX-RS介绍——Java API forRESTful WebServices,JAX-RS的目标是Web Services开发(这与HTML Web应用不同)而Spring MVC的目标则是Web应用开发
- WebService从零到项目开发使用3—技术研究之Axis2 POJO开发Web服务
- 30分钟学会使用Spring Web Services基础开发
- ubuntu构建Java Web开发环境
- JavaWeb之Servlet开发、HttpServlet开发
- Java Web开发中Sping的总结和SSH配置
- Java Web开发环境配置
- 第五步 javaweb开发之Servlet
- 给予Java初学者的建议(JavaWeb/后台开发)
- Java Web 服务: Axis2 WS-Security 签名和加密(转IBM)
- Java Web 开发 优化点之一
- java web 开发乱码总结
- 采用axis2 pojo开发webservice要点
- javaweb开发jsp页面一次性保存多条数据,批量保存数据!
- java webservice 之Axis2 WebServices总结