我正在使用XMLAdapter来编组和解组日期。在我的unmarshaller中,我想检查从REST服务提供的格式。如果格式错误,那么我想抛出一个我自己的例外。然而,这个考虑被吃掉了,应用程序继续前进。我知道解决方案在于 ValidationEventHandler ,但我无法弄清楚如何正确使用它。请帮助您使用它的方法。我的XMLAdapter代码就像这样
public class DateFormatAdapter extends XmlAdapter<String, Date> {
@Override
public String marshal(Date arg0) throws Exception {
return arg0.toString();
}
@Override
public Date unmarshal(String arg0) {
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
df.setLenient(false);
Date startDate = null;
try {
startDate = df.parse(arg0);
df.format(startDate);
} catch (ParseException e) {
// throw custom exception from here
}
return startDate;
}
}
答案 0 :(得分:1)
Status.INTERNAL_SERVER_ERROR
或其他内容。检测到数据未映射,因此响应不包含所需数据。如果要影响响应代码,如果数据格式不匹配,则必须在数据实体本身中抛出异常。在您的情况下,您必须创建一个扩展Date的CustomDate类,然后从构造函数调用验证方法。此外,apdapter类不被视为进行数据验证,因此使用自定义日期类和可选验证代理的方法更加方便。