2016-11-06 15 views
0

に変換することはできません。com.fasterxml.jackson.databind.node.ObjectNodeは私がplay2.2.1を使用していますし、今、私はエラーが直面しています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();で発生:jackson.databind.node.ObjectNodeは、コードは次のようであるorg.codehaus.jackson.node.ObjectNode

に変換することはできません。 はしかし、私は、静的メソッドnewObject()の戻り値が大きく異なるものがここに存在している、ではなく、2.2 APIリファレンスの[] [1] https://playframework.com/documentation/2.0/api/java/play/libs/Json.html

バージョンによってorg.codehaus.jackson.node.ObjectNode 2.0であることを確認しましたか? 深く、com.fasterxml.jackson.databind.node.ObjectNodeをインポートし、import org.codehaus.jackson.node.ObjectNode;を削除すると、アプリケーションは正常に動作します。 誰もこの動作を説明できますか? エラーメッセージがAPIリファレンスと矛盾するのはなぜですか?

+1

FasterXML/Jacksonライブラリが競合しているようです –

答えて

1

Jacksonライブラリの2つのバージョンが1つのプロジェクトに混在しているとします。古いバージョンはorg.codehaus.jackson名前空間を使用し、新しいバージョンはcom.fasterxml.jacksonを使用します。これは、Codehausから移動したためです。私は同じ問題を抱えていました。新しいバージョンのJacksonを使用してリファクタリングが正しく機能しなかったときです。クラスは互換性がないので、com.fasterxml.jacksonを一貫して使用する必要があります。

+0

ありがとうございました。私の問題は解決しましたが、質問があります。リファクタリングしたときに同じエラーが発生したとおっしゃいました。それはあなたが新しいバージョンを古いバージョンから変更しようとしたのですが、あなたはそのエラーに遭遇しましたか? –

+0

私はcodehausの旧バージョンのJacksonを使った '.jar'ライブラリを持ったプロジェクトを持っていました。私はその時の違いを知らなかった。しかし、私は 'org.fasterxml.jackson'をインクルードするためにmaven依存関係を使用しました。コンフリクトがあったので、両方のクラスの 'ObjectNode'がリファクタリングで混在しました。 – thatguy

関連する問題