文章转自http://www.blogjava.net/wphmoon/archive/2011/10/13/313758.html
最近在使用xfire开发webservice,发现一个这样的问题,如果注册的webservice 方法中的参数有Date类型时,调用该方法时把Date型参数填入null,就会报空指针错误,这是xfire的一个bug,很可惜在xfire官方网站上最新版的xfire版本是1.2.6,在这个版本中问题仍然没有解决,而解决的方法在codeHaus的jira中其实发现了这个问题,这个问题主要出在org.codehaus.xfire.aegis.type.basic.DateTimeType的writeObject方法,在1.2.6中这个方法的代码是这样的:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
Calendar c = Calendar.getInstance();
c.setTime((Date) object);
writer.writeValue(format.format(c));
}
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
if (object != null) {
Calendar c = Calendar.getInstance();
c.setTime((Date) object);
writer.writeValue(format.format(c));
} else {
writer.writeXsiNil();
}
}