﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-月挂夜中央-随笔分类-java咖啡杯</title><link>http://www.blogjava.net/wphmoon/category/29512.html</link><description>懒惰程序员</description><language>zh-cn</language><lastBuildDate>Wed, 16 Feb 2011 21:30:17 GMT</lastBuildDate><pubDate>Wed, 16 Feb 2011 21:30:17 GMT</pubDate><ttl>60</ttl><item><title>网易微博的OAUTH认证开发（java版）</title><link>http://www.blogjava.net/wphmoon/archive/2011/02/16/344474.html</link><dc:creator>月挂夜中央</dc:creator><author>月挂夜中央</author><pubDate>Wed, 16 Feb 2011 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/wphmoon/archive/2011/02/16/344474.html</guid><wfw:comment>http://www.blogjava.net/wphmoon/comments/344474.html</wfw:comment><comments>http://www.blogjava.net/wphmoon/archive/2011/02/16/344474.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wphmoon/comments/commentRss/344474.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wphmoon/services/trackbacks/344474.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;网易微博最近也开放了它的开发平台http://open.t.163.com，其中java版的oauth认证和新浪微博的很类似（貌似都是从twitter那边copy过来的）。但说句实话，网易java版的sdk和新浪微博的比起来，的确上手比较麻烦，里面提供的example都是把access token写死，作为参数，具体的代码如下：public&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/wphmoon/archive/2011/02/16/344474.html'>阅读全文</a><img src ="http://www.blogjava.net/wphmoon/aggbug/344474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wphmoon/" target="_blank">月挂夜中央</a> 2011-02-16 21:31 <a href="http://www.blogjava.net/wphmoon/archive/2011/02/16/344474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>springside3.*中log4j和java.util.concurrent的结合使用</title><link>http://www.blogjava.net/wphmoon/archive/2011/02/13/344206.html</link><dc:creator>月挂夜中央</dc:creator><author>月挂夜中央</author><pubDate>Sun, 13 Feb 2011 13:20:00 GMT</pubDate><guid>http://www.blogjava.net/wphmoon/archive/2011/02/13/344206.html</guid><wfw:comment>http://www.blogjava.net/wphmoon/comments/344206.html</wfw:comment><comments>http://www.blogjava.net/wphmoon/archive/2011/02/13/344206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wphmoon/comments/commentRss/344206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wphmoon/services/trackbacks/344206.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在springside3.*中的showcase案例中，有一个把log4j的日志存入数据库的演示，下面是我对这个案例的学习笔记。1、我们首先来看下log4j相关日志的配置：#Async&nbsp;Database&nbsp;Appender&nbsp;(Store&nbsp;business&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/wphmoon/archive/2011/02/13/344206.html'>阅读全文</a><img src ="http://www.blogjava.net/wphmoon/aggbug/344206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wphmoon/" target="_blank">月挂夜中央</a> 2011-02-13 21:20 <a href="http://www.blogjava.net/wphmoon/archive/2011/02/13/344206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用XmemcachedClient设置缓存对象过期时间的问题</title><link>http://www.blogjava.net/wphmoon/archive/2011/01/21/343337.html</link><dc:creator>月挂夜中央</dc:creator><author>月挂夜中央</author><pubDate>Fri, 21 Jan 2011 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/wphmoon/archive/2011/01/21/343337.html</guid><wfw:comment>http://www.blogjava.net/wphmoon/comments/343337.html</wfw:comment><comments>http://www.blogjava.net/wphmoon/archive/2011/01/21/343337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wphmoon/comments/commentRss/343337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wphmoon/services/trackbacks/343337.html</trackback:ping><description><![CDATA[前几天在做一个涉及到memcache的项目，使用XmemcachedClient来操作memcache，由于是一个季度的数据，保存数据时这样的<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;memcachedClient.set(key,&nbsp;expiredTime,&nbsp;value)</span></div>
其中设置了过期时间为90天<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cacheExpireTime&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">*</span><span style="color: #000000">60</span><span style="color: #000000">*</span><span style="color: #000000">24</span><span style="color: #000000">*</span><span style="color: #000000">90</span><span style="color: #000000">;</span></div>
结果就杯具了，保存后用get方法取时都是null；后来无意中把过期时间改成小于30天，就完全没有问题，经过谷歌大神的帮忙，终于发现了原因。<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">服务端的处理<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />时间处理源代码【memcached.c】如下：<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#define&nbsp;REALTIME_MAXDELTA&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">*</span><span style="color: #000000">60</span><span style="color: #000000">*</span><span style="color: #000000">24</span><span style="color: #000000">*</span><span style="color: #000000">30</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;定义30天的秒数</span><span style="color: #008000"><br />
<img id="Codehighlighter1_150_719_Open_Image" onclick="this.style.display='none'; Codehighlighter1_150_719_Open_Text.style.display='none'; Codehighlighter1_150_719_Closed_Image.style.display='inline'; Codehighlighter1_150_719_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_150_719_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_150_719_Closed_Text.style.display='none'; Codehighlighter1_150_719_Open_Image.style.display='inline'; Codehighlighter1_150_719_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;rel_time_t&nbsp;realtime(</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;time_t&nbsp;exptime)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_150_719_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_150_719_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(exptime&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_227_515_Open_Image" onclick="this.style.display='none'; Codehighlighter1_227_515_Open_Text.style.display='none'; Codehighlighter1_227_515_Closed_Image.style.display='inline'; Codehighlighter1_227_515_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_227_515_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_227_515_Closed_Text.style.display='none'; Codehighlighter1_227_515_Open_Image.style.display='inline'; Codehighlighter1_227_515_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(exptime&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;REALTIME_MAXDELTA)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_227_515_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_227_515_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;超过30天，是绝对时间</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(exptime&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;process_started)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;小于进程启动日期</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(rel_time_t)</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(rel_time_t)(exptime&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;process_started);&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;返回进程启动之后的时间差</span><span style="color: #008000"><br />
<img id="Codehighlighter1_522_717_Open_Image" onclick="this.style.display='none'; Codehighlighter1_522_717_Open_Text.style.display='none'; Codehighlighter1_522_717_Closed_Image.style.display='inline'; Codehighlighter1_522_717_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_522_717_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_522_717_Closed_Text.style.display='none'; Codehighlighter1_522_717_Open_Image.style.display='inline'; Codehighlighter1_522_717_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_522_717_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_522_717_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;不超过30天，是相对时间</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(rel_time_t)(exptime&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;current_time);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;exptime&nbsp;+&nbsp;(tvsec&nbsp;-&nbsp;process_started)</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
原来超过30天就自动转换成绝对时间，和进程启动时间比较，显然60*60*24*90小于启动日期的绝对数，所以对象一存入就过期了，肯定取不到数据。<br />
具体的问题请围观这篇文章：<a href="http://blog.sina.com.cn/s/blog_539d361e0100nc9h.html">http://blog.sina.com.cn/s/blog_539d361e0100nc9h.html</a>。
<img src ="http://www.blogjava.net/wphmoon/aggbug/343337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wphmoon/" target="_blank">月挂夜中央</a> 2011-01-21 16:18 <a href="http://www.blogjava.net/wphmoon/archive/2011/01/21/343337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xfire的webservice方法中date类型参数为null出现空指针错误的问题</title><link>http://www.blogjava.net/wphmoon/archive/2010/02/24/313758.html</link><dc:creator>月挂夜中央</dc:creator><author>月挂夜中央</author><pubDate>Wed, 24 Feb 2010 01:12:00 GMT</pubDate><guid>http://www.blogjava.net/wphmoon/archive/2010/02/24/313758.html</guid><wfw:comment>http://www.blogjava.net/wphmoon/comments/313758.html</wfw:comment><comments>http://www.blogjava.net/wphmoon/archive/2010/02/24/313758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wphmoon/comments/commentRss/313758.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wphmoon/services/trackbacks/313758.html</trackback:ping><description><![CDATA[最近在使用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中这个方法的代码是这样的：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;writeObject(Object&nbsp;object,&nbsp;MessageWriter&nbsp;writer,&nbsp;MessageContext&nbsp;context)<br />
<img id="Codehighlighter1_89_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_89_219_Open_Text.style.display='none'; Codehighlighter1_89_219_Closed_Image.style.display='inline'; Codehighlighter1_89_219_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_89_219_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_89_219_Closed_Text.style.display='none'; Codehighlighter1_89_219_Open_Image.style.display='inline'; Codehighlighter1_89_219_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_89_219_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_89_219_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.setTime((Date)&nbsp;object);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.writeValue(format.format(c));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
修改过后的代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;writeObject(Object&nbsp;object,&nbsp;MessageWriter&nbsp;writer,<br />
<img id="Codehighlighter1_88_264_Open_Image" onclick="this.style.display='none'; Codehighlighter1_88_264_Open_Text.style.display='none'; Codehighlighter1_88_264_Closed_Image.style.display='inline'; Codehighlighter1_88_264_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_88_264_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_88_264_Closed_Text.style.display='none'; Codehighlighter1_88_264_Open_Image.style.display='inline'; Codehighlighter1_88_264_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageContext&nbsp;context)&nbsp;</span><span id="Codehighlighter1_88_264_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_88_264_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_112_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_225_Open_Text.style.display='none'; Codehighlighter1_112_225_Closed_Image.style.display='inline'; Codehighlighter1_112_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_112_225_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_112_225_Closed_Text.style.display='none'; Codehighlighter1_112_225_Open_Image.style.display='inline'; Codehighlighter1_112_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(object&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_112_225_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_112_225_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.setTime((Date)&nbsp;object);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.writeValue(format.format(c));<br />
<img id="Codehighlighter1_232_261_Open_Image" onclick="this.style.display='none'; Codehighlighter1_232_261_Open_Text.style.display='none'; Codehighlighter1_232_261_Closed_Image.style.display='inline'; Codehighlighter1_232_261_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_232_261_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_232_261_Closed_Text.style.display='none'; Codehighlighter1_232_261_Open_Image.style.display='inline'; Codehighlighter1_232_261_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_232_261_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_232_261_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.writeXsiNil();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
加了个对null的判断就好了。很不幸的是xfire现在变成了cxf，指望官方在新的xfire版本中改正这个bug是没戏了，大家还是自己改改用吧。
<img src ="http://www.blogjava.net/wphmoon/aggbug/313758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wphmoon/" target="_blank">月挂夜中央</a> 2010-02-24 09:12 <a href="http://www.blogjava.net/wphmoon/archive/2010/02/24/313758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>