2012-11-15 73 views
1

上下文: - 鑑於以下代碼,我收到異常。請告訴我爲什麼它有明確的解釋發生的事情:查詢Jersey REST服務時的消息傳遞異常(com.sun.jersey.api.MessageException)

@GET 
@Produces("application/xml") 
public List getEmployee() 
{ 
    List<Employee> emp=new ArrayList<Employee>(); 
    return emp; 
} 

@XmlRootElement 
public class Employee{ 

} 

當我打電話getEmployee的服務我得到以下異常:

產生的原因:com.sun.jersey.api.MessageException:一郵件正文作家 的Java類java.util.ArrayList和Java類型的接口 java.util.List的,和MIME媒體類型application/XML沒有被發現 ...... 30多個

謝謝

+0

泛型參數類型添加到列表中的返回類型。 – Perception

回答

2

您正在重新調整ArrayList的一個實例的Employees列表。您在Employee類上聲明瞭根註釋,而不是在arraylist上。

您需要創建一個用於保存員工列表的包裝。此包裝將使你的列表中創建根元素,即

import java.util.ArrayList; 

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlAccessorType(XmlAccessType.NONE) 
@XmlRootElement(name = "users") 
public class Users { 

    @XmlElement(name="user") 
    private ArrayList users; 

    public ArrayList getUsers() { 
     return users; 
    } 

    public void setUsers(ArrayList users) { 
     this.users = users; 
    } 
} 

請參考下面的教程更瞭解

http://howtodoinjava.com/2012/11/26/writing-restful-webservices-with-hateoas-using-jax-rs-and-jaxb-in-java/

相關問題