2012-11-18 122 views
0

我有一個servlet,我從ajax(jquery)調用發佈數據。從servlet返回JSONObject拋出異常

$('form').submit(function() { 
var URL = "ProjectHandler"; 
var dataString=$(this).serialize(); 
$.ajax({ 
     type: "POST", 
     url: URL, 
     data: dataString, 
     // dataType: json, 
     success: function(data) 
     { 
      alert(data.error); 

     } 
    }); 
    return false; 
}); 

我評論過的dataType東陽當我取消它,它不使AJAX調用,而是形式與默認模式提交即該servlet加載

JAR的我已經加入到項目中1。 json-lib-2.2.2-jdk15.jar 2. apache-commons-lang.jar 3. ezmorph-1.0.jar

首先它拋出異常filenotfound,它是apache-commons軟件包的一部分,所以包含apache commons,之後我得到了ezmorph-1.0.jar的一部分filenotfound的異常,所以我也添加了它。現在,我得到在servlet的doPost方法

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 

代碼:

response.setContentType("application/json"); 
PrintWriter out = response.getWriter(); 

JSONObject json = new JSONObject(); 
json.put("error", true); 
json.put("errorDesc", "wrong title"); 
out.print(json); 

我希望我已清除的情況下,任何幫助,將不勝感激。

謝謝

+0

google搜索異常將有助於 – Saurabh

回答

1

它看起來像你缺少commons-logging.jar。將它添加到你的類路徑中。

+1

OK,讓我補充一點,我將回到 –

+0

現在這個異常拋出java.lang.ClassNotFoundException:org.apache.commons.collections.map.ListOrderedMap –

+0

現在好像你缺少commons-收集jar – Tomer

0

你可以放棄json-lib嗎?如果是的話就這樣做!說實話,沒有理由使用這個庫......事實上,它需要你添加大量的依賴關係來證明它。

我建議你試試Genson庫http://code.google.com/p/genson/。它的優點是易於使用,但功能強大,可擴展,一次又一次快速。 它可以讓你反序列化/序列化直接pojos,不需要使用所有這些JsonObject/Arrays ...你也可以直接使用它的流媒體API,如果你需要一些接近於手動json的表現。