com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode
com.fasterxml.jackson.databind.node.ObjectNode cannot be converted to org.codehaus.jackson.node.ObjectNode
我正在使用 play2.2.1,现在我遇到了错误:
com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode
代码是这样的:
package controllers;
import play.*;
import play.data.*;
import play.mvc.*;
import play.db.ebean.*;
import views.html.*;
import java.util.*;
import models.*;
import com.avaje.ebean.ExpressionList;
import play.data.validation.Constraints.Required;
import scala.*;
import play.libs.Json;
import org.codehaus.jackson.node.ObjectNode;
public class Application extends Controller {
//create JSON data
public static Result ajax() {
String input = request().body().asFormUrlEncoded().get("input")[0];
ObjectNode result = Json.newObject();
if(input == null) {
result.put("status", "BAD");
result.put("message", "Can't get sending data...");
return badRequest(result);
} else {
result.put("status", "OK");
result.put("message", input);
return ok(result);
}
}
错误发生在ObjectNode result = Json.newObject();
。
但是,我通过[][1]https://playframework.com/documentation/2.0/api/java/play/libs/Json.html
确认静态方法newObject()
的return值为org.codehaus.jackson.node.ObjectNode
API 引用的版本是 2.0,而不是 2.2,所以这里存在一些不同?
深刻地,当我导入 com.fasterxml.jackson.databind.node.ObjectNode
并删除 import org.codehaus.jackson.node.ObjectNode;
时,应用程序运行良好。
谁能解释这种行为?
为什么错误消息与 API 引用相矛盾?
我假设在一个项目中混合了两个版本的 Jackson
库。旧版本使用 org.codehaus.jackson
命名空间,而新版本使用 com.fasterxml.jackson
,因为它们是从 Codehaus 迁移而来的。我遇到了同样的问题,当我使用更新版本的 Jackson 并且重构无法正常工作时。 类 不兼容,因此您必须始终使用 com.fasterxml.jackson
。
我正在使用 play2.2.1,现在我遇到了错误:
com.fasterxml.jackson.databind.node.ObjectNode 无法转换为 org.codehaus.jackson.node.ObjectNode
代码是这样的:
package controllers;
import play.*;
import play.data.*;
import play.mvc.*;
import play.db.ebean.*;
import views.html.*;
import java.util.*;
import models.*;
import com.avaje.ebean.ExpressionList;
import play.data.validation.Constraints.Required;
import scala.*;
import play.libs.Json;
import org.codehaus.jackson.node.ObjectNode;
public class Application extends Controller {
//create JSON data
public static Result ajax() {
String input = request().body().asFormUrlEncoded().get("input")[0];
ObjectNode result = Json.newObject();
if(input == null) {
result.put("status", "BAD");
result.put("message", "Can't get sending data...");
return badRequest(result);
} else {
result.put("status", "OK");
result.put("message", input);
return ok(result);
}
}
错误发生在ObjectNode result = Json.newObject();
。
但是,我通过[][1]https://playframework.com/documentation/2.0/api/java/play/libs/Json.html
newObject()
的return值为org.codehaus.jackson.node.ObjectNode
API 引用的版本是 2.0,而不是 2.2,所以这里存在一些不同?
深刻地,当我导入 com.fasterxml.jackson.databind.node.ObjectNode
并删除 import org.codehaus.jackson.node.ObjectNode;
时,应用程序运行良好。
谁能解释这种行为?
为什么错误消息与 API 引用相矛盾?
我假设在一个项目中混合了两个版本的 Jackson
库。旧版本使用 org.codehaus.jackson
命名空间,而新版本使用 com.fasterxml.jackson
,因为它们是从 Codehaus 迁移而来的。我遇到了同样的问题,当我使用更新版本的 Jackson 并且重构无法正常工作时。 类 不兼容,因此您必须始终使用 com.fasterxml.jackson
。