从servlet返回JSONObject会引发异常

时间:2012-11-18 14:40:11

标签: java javascript json jquery servlets

我有一个servlet,我从ajax(jquery)调用中发布数据。

$('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,之后我得到了filenotfound的异常,它是ezmorph-1.0.jar的一部分,所以我也加了。现在我正在

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

servlet doPost中的代码:

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

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

我希望我已经清除了这个场景,任何帮助都会受到赞赏。

由于

2 个答案:

答案 0 :(得分:1)

看起来你错过了commons-logging.jar。将它添加到类路径中。

答案 1 :(得分:0)

你能丢掉json-lib吗?如果是的话!老实说,没有理由使用这个库......它需要你添加大量的依赖项才能证明它。

我建议您尝试Genson库http://code.google.com/p/genson/。它具有易于使用但功能强大,可扩展,一体化且快速的优点。 它允许你直接反序列化/序列化为pojos,不需要使用所有这些JsonObject / Arrays ...如果你需要一些接近手动json的东西,你也可以直接使用它的流API。