月掛夜中央

          懶惰程序員

          常用鏈接

          統計

          最新評論

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

          評論

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

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

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

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

          主站蜘蛛池模板: 阳新县| 周口市| 阳春市| 庐江县| 封丘县| 莒南县| 金山区| 洪湖市| 石屏县| 轮台县| 怀来县| 乌拉特后旗| 通渭县| 遂昌县| 明溪县| 桂林市| 昌宁县| 长海县| 烟台市| 玉山县| 湖州市| 邵阳市| 静宁县| 柘城县| 双鸭山市| 博客| 洛南县| 六安市| 浑源县| 灵山县| 寿光市| 泽库县| 丹棱县| 青冈县| 乐业县| 亚东县| 柏乡县| 沾化县| 白朗县| 中西区| 隆林|