【发布时间】:2015-04-24 02:15:19
【问题描述】:
在 Apache Tomcat 8 中出现 500 错误。
使用此文本(样式与 Tomcat 相同):
HTTP 状态 500 - 内部服务器错误 输入状态报告
消息内部服务器错误
描述服务器遇到阻止它的内部错误 完成此请求。
Apache Tomcat/8.0.20
Tomcat 正在从 Eclipse Luna 运行。
我使用的相关代码是这样的:
@GET
@Path("-{index}")
@Produces({"application/json"})
public MyCustomModelObject getDataByIndex(@PathParam("index") int index){
return ArrayOfMyCustomModelObjects[index];
}
不返回 JSON 数据,而是返回 500 页面,但没有进一步的消息输出。 此外,Eclipse 控制台也不会输出任何错误。
然而,如果我将@Produces 更改为
@Produces({"application/xml"})
它返回xml就好了。
任何解决此问题的帮助将不胜感激。
很高兴提供更多信息以帮助解决问题。
编辑:
import java.util.Date;
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.FIELD)
@XmlRootElement
public class MyCustomModelObject {
@XmlElement(name = "categories")
private String[] category;
@XmlElement(name = "")
private String author;
@XmlElement(name = "date")
private Date date;
public MyCustomModelObject(){};
public MyCustomModelObject(String[] category, String author,
Date date) {
super();
this.category = category;
this.author = author;
this.date = date;
}
public String[] getCategory() {
return category;
}
public void setCategory(String[] category) {
this.category = category;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
【问题讨论】:
-
能否贴出ArrayOfMyCustomModelObjects 的实现。
-
要调试,写一个
ExceptionMapper<Throwable>。打印堆栈跟踪异常。我认为这应该为您提供有关该问题的更多信息。如果有的话,请发布堆栈跟踪后记。 -
为什么
@XmlElement(name = "")的元素名是空的? -
@peeskillet 我注意到在您发表评论前一两分钟。我测试并解决了问题,然后当我写答案时(我自己的愚蠢错误),我看到了你的评论。感谢您的帮助。
标签: java json eclipse rest tomcat