2013-03-19 42 views
3

數據是一個名爲「QueryResponse」的對象,該對象又擁有一個名爲「Todos」的對象列表。jersey.api.MessageException消息正文編寫者和MIME媒體類型text/xml找不到

我得到這個錯誤:

javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<de.vogella.jersey.todo.model.Todo>, and MIME media type text/xml was not found 

我這件球衣get方法:

@GET 
@Produces({"application/xml", "application/json"}) 
public QueryResponse getTodos() { 

List todos = new ArrayList(); 
todos.addAll(TodoDao.instance.getModel().values()); 
return new QueryResponse(todos); 
} 

這就是今天的QueryResponse對象:

@XmlRootElement 

public class QueryResponse { 
@XmlElementWrapper(name = "Todos") 
@XmlElement(name = "Todo") 
private List<Todo> todolist; 
public QueryResponse(List<Todo> todolist) 
{ 
    this.todolist = todolist; 
} 

public void setTodolist(List<Todo> todolist) 
{ 
    this.todolist = todolist; 
} 
public List<Todo> getTodolist() 
{ 
    return this.todolist; 
} 
} 

這是Todo類:

public class Todo 
{ 


    private int id; 
    private String summary; 
    private String Description; 

    public Todo() 
{ 
} 

    public Todo(int id, String summary) 
{ 
    this.id = id; 
    this.summary = summary; 
} 
public int getId() { 
    return this.id; 
} 
public void setId(int userID) { 
    this.id = userID; 
} 
public String getSummary() { 
    return this.summary; 
} 
public void setSummary(String summary) { 
    this.summary = summary; 
} 
public String getDescription() { 
    return this.Description; 
} 
public void setDescription(String description) { 
    this.Description = description; 
} 
} 

我感謝您的幫助。

回答

2

執行以下操作:

  1. 標註public void getTodolist(List<Todo> todolist)具有以下注釋:@XmlElementRef
  2. 與以下注釋標註您QueryResponse:@XmlSeeAlso({Todo.class})
+1

它沒有爲我工作。 – 2013-03-19 09:05:16

+0

用JAXB註釋標註Todo類。 – 2013-03-19 09:12:37

+0

我不確定TODO中應該出現哪些註釋,你可以幫我嗎? – 2013-03-19 09:21:56

相關問題