簡體   English   中英

Arraylist實施

[英]Arraylist implementation

我有一個類Researcher和一個名為researcherList的ArrayList,它包含一個研究人員列表。
我想從數據庫中獲取所有研究人員的信息並將其放入我創建的研究人員列表中,我對客戶的回復將是研究人員名單。 我已經編寫了下面的代碼,請嘗試查看代碼並找到錯誤。 它不起作用。 它創造了一個例外。 這是例外

SEVERE: A message body writer for Java type, class java.util.ArrayList, and MIME media type, application/xml, was not found
SEVERE: Mapped exception to response: 500 (Internal Server Error) javax.ws.rs.WebApplicationException

@GET
@Path("/researcher/all")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getAllResearchers() {

    //TODO return proper representation object

    Researcher res = new Researcher();
    List<Researcher> researcherList = new ArrayList<Researcher>();
    try {
        ResultSet resList = researcher.getAllResearcher();

        while (resList.next()) {
            res.setId(resList.getInt("id"));
            res.setResearcherName(resList.getString("name"));
            res.setAge(resList.getInt("age"));
            res.setSex(resList.getString("sex"));
            res.setCity(resList.getString("city"));
            res.setStreet(resList.getString("street"));
            res.setTelephone(resList.getString("telephone"));
            researcherList.add(res);
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }

    return Response.ok(researcherList).build();
}

您是在循環中一直添加相同的Researcher對象! 你確定它是你想要的嗎?

我想移動Researcher res = new Researcher(); 之后while (resList.next()) { .....可能會派上用場。

Response沒有ArrayList類型的處理程序。

我會將它轉換為String並返回它。 作為第一次切割,您可以嘗試:

return Response.ok(researcherList.toString()).build();

此外,您每次都添加相同的 Researcher對象。 您應該在每次循環迭代時創建一個新的Researcher對象

List<Researcher> researcherList = new ArrayList<Researcher>();
try {
    Researcher res = new Researcher();
    researcherList.add(res);
    ...

您的最終解決方案可能涉及從列表中構建HTML字符串:

return Response.ok(convertToHtml(researcherList)).build();

...

private static String convertToHtml(String< Researcher > researcherList) {
    // some implementation
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM