我试图使用@@XmlRootElement注解将POJO映射到一个XML元素,但当我试图访问我的端点时,我一直得到一个javax.servlet.ServletException: java.lang.NullPointerException。
Message.java
@XmlRootElement
public class Message {
private long id;
private String message;
private Date created;
private String author;
public Message(long id, String message, String author) {
this.id = id;
this.message = message;
this.author = author;
this.created = new Date();
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
MessageService.java
public class MessageService {
public List<Message> getAllMessages(){
Message m1 = new Message(1L, "Hello World!", "Amine");
Message m2 = new Message(2L, "Hi World!", "Amine");
Message m3 = new Message(3L, "Hey World!", "Amine");
List<Message> messages = new ArrayList<Message>();
messages.add(m1);
messages.add(m2);
messages.add(m3);
return messages;
}
}
MessageResource.java
@Path("messages")
public class MessageResource {
MessageService messageService = new MessageService();
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Message> getMessages() {
return messageService.getAllMessages();
}
}
輸出:我試圖使用@@XmlRootElement注解將一個POJO映射到一個XML元素上,但我一直得到javax.servlet.ServletException:java.lang.NullPoin。
似乎Jersey有问题初始化MessageService messageService = new MessageService()。
尝试一些不同的方法来创建这个对象,你可以尝试自动接线或者把上面的行移到getMessages()方法里面。
但我建议你在调试模式下启动你的服务器,看看到底是什么东西变成了null。