0

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

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);

我希望我已经清除了这个场景,任何帮助将不胜感激。

谢谢

4

2 回答 2

1

看起来您缺少 commons-logging.jar。将其添加到您的类路径中。

于 2012-11-18T14:42:40.307 回答
0

你能放弃 json-lib 吗?如果是的话就去做吧!老实说,没有理由使用这个库......它需要您添加大量依赖项的事实证明了这一点。

我建议你试试 Genson 库http://code.google.com/p/genson/。它的优点是易于使用但功能强大、可扩展、多合一且速度快。它将允许您直接反序列化/序列化到 pojos,无需使用所有那些 JsonObject/Arrays ...如果您在性能方面需要接近手动 json 的东西,您也可以直接使用它的流 API。

于 2012-11-18T16:20:54.140 回答