如何用Apache Axis返回一个列表

如何用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的确实神奇。