上下文: - 鉴于以下代码,我得到了异常。请告诉我为什么会有明确的解释:
@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 :(得分:2)
您正在重新调整一个Employlist的列表,其中包含ArrayList的一个实例。您在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;
}
}
请参阅以下教程以获得更多理解