如何用Apache Axis返回一个列表
问题描述:
Tomcat上,我有一个类,从数据库返回的对象的列表,像这样:如何用Apache Axis返回一个列表
List<Entity> list = null;
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
con = Connector.getConexion();
String sql = "SELECT * FROM some_table LIMIT 10;";
pstm = con.prepareStatement(sql);
rs = pstm.executeQuery();
list = new ArrayList<>();
EntityCrimesChicago ecc = null;
while (rs.next()) {
e = new Entity();
e.setID(rs.getString(1));
e.setCase_Number(rs.getString(2));
list.add(e);
}
return list;
catch { ... }
finally { ... }
实体和表拥有的所有字段作为字符串/ VARCHAR ,甚至是身份证。
服务获取与该列表(这是一个Web方法):
public List<Entity> someThing(String q) {
DAOThings controller = new DAOThings();
List<Entity> things = controller.getSomeThings(Integer.parseInt(q));
return things;
}
这回
java.io.IOException: No serializer found for class Entity in registry [email protected]
但是,如果我改变Web方法返回一个String
我用return things.toString();
返回的对象,但不是他的内容。
我能做些什么来正确返回列表?
我尝试返回manueally添加的字符串列表,并正常工作。
答
我解决了将对象传递给String数组的问题。
当我对象列表:
public List<Entity> someThing(String q) {
DAOThings controller = new DAOThings();
List<Entity> things = controller.getSomeThings(Integer.parseInt(q));
return things;
}
我只需要做到这一点:
public List<String[]> someThing(String q) {
DAOThings controller = new DAOThings();
List<Entity> things = controller.getSomeThings(Integer.parseInt(q));
List<String[]> list = new ArrayList<>;
for (Entity value : things) {
String[] array = new String[obj_fields];
array[0] = value.getAny();
...
array[n] = value.getAny();
list.add(array);
}
return list;
}
而Apache Axis的确实神奇。