【发布时间】:2015-06-22 20:24:21
【问题描述】:
我正在调用此方法并从中获得 500 的回报。
在调试器中,我可以一直执行到最后的 return 语句。没问题,在调用 Response.build() 后 r 按预期填充,状态为 200 OK。但这不是最终生产出来的。我什至告诉 eclipse 打破任何异常。
@GET
@Path("/getAllAppMessagesAsXML")
@Produces({MediaType.TEXT_XML, MediaType.APPLICATION_XML})
public Response getAllAppMessagesXML(@QueryParam("applicationId") String applicationId){
ResponseList list = new ResponseList();
ArrayList<XmlMessageBean> xmlmessages = new ArrayList<>();
try {
List<AppMessage> messages = //Gets from a database
for(AppMessage m : messages){
XmlMessageBean xm = new XmlMessageBean();
xm.setId(m.getId());
xm.setApplicationId(m.getApplicationId());
xm.setMessageBody(m.getMessageBody());
xm.setMessageLevel(m.getMessageLevel());
xm.setMessageTitle(m.getMessageTitle());
xmlmessages.add(xm);
}
} catch (Exception e) {
logger.error("ERROR Failed to save Message AppMessageService.saveAppMessage()", e);
Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
list.setList(xmlmessages);
Response r = null;
try{
r = Response.status(Response.Status.OK).entity(list).build();
}catch(Exception e){
e.printStackTrace();
}
return r;
}
XmlMessageBean.java
@XmlRootElement(name="AppMessage")
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlMessageBean {
@XmlElement
private Long id;
@XmlElement
private String applicationId;
@XmlElement
private String messageTitle;
@XmlElement
private String messageBody;
@XmlElement
private String messageLevel;
public XmlMessageBean(){
}
//getters and setters
}
ResponseList.java
@XmlRootElement(name = "ResponseList")
public class ResponseList {
public ResponseList(){
}
@XmlElement(name="list")
private List<XmlMessageBean> list;
public List<XmlMessageBean> getList() {
return list;
}
public void setList(List<XmlMessageBean> list) {
this.list = list;
}
}
我已经在 jersey.servlet.ServletContainer 中运行了这一切 我难住了。我不知道如何让它产生除通用 500 之外的任何类型的错误消息。我已经尝试设置异常映射器,正如其他一些帖子提到的那样,但这也没有任何意义。
【问题讨论】:
-
您是否为 Jersey 和您的 servlet 容器启用了日志记录?
-
我有。日志也是无声的。
-
你做过简单的 hello world 往返来验证网络、防火墙等吗?
-
我正在做一些潜水,看到 IllegalAnnotationException:类有两个同名的属性“列表”也许我没有正确配置异常映射器。我想我不必为了得到那个而努力工作。