asp.net 中传递、返回复杂类型的对象(1/3)
上面的服务传递的是简单数据类型,返回的也是简单数据类型。下面我们用javabean 、list、map、array等返回值或参数完成webservice。
1、首先看看javabean模式的参数和返回值的webservice,javabean代码如下:
代码
package com.hoo.entity;
import java.io.serializable;
/**
* <b>function:</b>user entity
* @author hoojo
* @createdate dec 16, 2010 10:20:02 pm
* @file user.java
* @package com.hoo.entity
* @project axiswebservice
* @blog http://blog.csdn.net/ibm_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
public class user implements serializable {
private static final long serialversionuid = 677484458789332877l;
private int id;
private string name;
private string email;
private string address;
//constractor
//getter、setter@override
public string tostring() {
return this.id + "#" + this.name + "#" + this.email + "#" + this.address;
}
}
没有上面特别就是一个普通的java对象,里面提供一些属性及getter、setter方法和tostring方法(在显示数据的时候有用),值得注意的是在远程调用的java对象都需要实现serializable接口,这样在网络中传递对象的时候就不会出现重复的javabean。用过或是了解ejb、rmi的朋友应该知道这点。序列化后的对象可以用io进行序列化写入到文件中,也可以反序列化解析到对象中的数据。
2、好,回正题。下面编写webservice的服务器端代码。
代码
package com.hoo.service;
import java.util.arraylist;
import java.util.date;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import com.hoo.entity.user;/**
* <b>function:</b>axis webservice传递复杂类型数据
* @author hoojo
* @createdate dec 16, 2010 10:21:06 pm
* @file manageruser.java
* @package com.hoo.service
* @project axiswebservice
* @blog http://blog.csdn.net/ibm_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
@suppresswarnings("deprecation")
public class manageruser {
public user getuserbyname(string name) {
user user = new user();
user.setid(new date().getseconds());
user.setname(name);
user.setaddress("china");
user.setemail(name + "@hoo.com");
return user;
}
public void setuser(user user) {
system.out.println(user);
}
public list<user> getusers(int i) {
list<user> users = new arraylist<user>();
for (int j = 0; j <= i; j++) {
user user = new user();
user.setid(new date().getseconds());
user.setname("jack#" + j);
user.setaddress("china");
user.setemail("jack" + j + "@hoo.com");
users.add(user);
}
return users;
}
public void setusermap(map<string, user> maps教程) {
system.out.println(maps);
}
public user[] getuserarray(int i) {
user[] users = new user[i];
for (int j = 0; j < i; j++) {
user user = new user();
user.setid(new date().getseconds());
user.setname("jack#" + j);
user.setaddress("china");
user.setemail("jack" + j + "@hoo.com");
users[j] = user;
}
return users;
}
public void setuserarray(user[] users) {
for (user u : users) {
system.out.println(u);
}
}
public map<string, user> getusermap() {
map<string, user> users = new hashmap<string, user>();
user user = new user();
user.setid(new date().getseconds());
user.setname("jack#");
user.setaddress("china");
user.setemail("jack@hoo.com");
users.put("a", user);
user = new user();
user.setid(new date().getseconds());
user.setname("tom");
user.setaddress("china");
user.setemail("tom@hoo.com");
users.put("b", user);
return users;
}
public void setusers(list<user> users) {
for (user u : users) {
system.out.println(u);
}
}
}
补充:asp.net教程,基础入门