月挂夜中央

懒惰程序员

常用链接

统计

最新评论

xfire的webservice方法中date类型参数为null出现空指针错误的问题

最近在使用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中这个方法的代码是这样的:

public void writeObject(Object object, MessageWriter writer, MessageContext context)
    
{
        Calendar c 
= Calendar.getInstance();
        c.setTime((Date) object);
        writer.writeValue(format.format(c));
    }
修改过后的代码如下:
public void writeObject(Object object, MessageWriter writer,
            MessageContext context) 
{
        
if (object != null{
            Calendar c 
= Calendar.getInstance();
            c.setTime((Date) object);
            writer.writeValue(format.format(c));
        }
 else {
            writer.writeXsiNil();
        }

    }
加了个对null的判断就好了。很不幸的是xfire现在变成了cxf,指望官方在新的xfire版本中改正这个bug是没戏了,大家还是自己改改用吧。

我的微博 http://t.sina.com.cn/1401900445

posted on 2010-02-24 09:12 月挂夜中央 阅读(3724) 评论(2)  编辑  收藏 所属分类: java咖啡杯

评论

# re: xfire的webservice方法中date类型参数为null出现空指针错误的问题 2011-10-13 16:47 dsfa

是应该检查下传入的参数的吧!!为空的话会出错的  回复  更多评论   

# re: xfire的webservice方法中date类型参数为null出现空指针错误的问题[未登录] 2014-04-10 11:37 chen

要怎样重新编译打包呢?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: