月掛夜中央

          懶惰程序員

          常用鏈接

          統計

          最新評論

          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 月掛夜中央 閱讀(3751) 評論(2)  編輯  收藏 所屬分類: java咖啡杯

          評論

          # re: xfire的webservice方法中date類型參數為null出現空指針錯誤的問題 2011-10-13 16:47 dsfa

          是應該檢查下傳入的參數的吧!!為空的話會出錯的  回復  更多評論   

          # re: xfire的webservice方法中date類型參數為null出現空指針錯誤的問題[未登錄] 2014-04-10 11:37 chen

          要怎樣重新編譯打包呢?  回復  更多評論   

          主站蜘蛛池模板: 滕州市| 阿瓦提县| 龙门县| 津市市| 弋阳县| 岑溪市| 石门县| 高密市| 库尔勒市| 孝感市| 洛南县| 卢氏县| 辽宁省| 屯留县| 枞阳县| 邹城市| 徐闻县| 墨脱县| 昌宁县| 奉节县| 龙门县| 兰考县| 望奎县| 虎林市| 古交市| 望都县| 古蔺县| 石城县| 五原县| 沾益县| 江达县| 岳西县| 称多县| 文成县| 丘北县| 文化| 当阳市| 凭祥市| 寻甸| 德兴市| 方城县|