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

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类

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