2017-02-14 10 views
1

私はjacksonの新しいバージョン(org.codehausからcom.fasterxmlへ)にアップグレードしています。突然私は多くの奇妙なものに直面していますエラー。努力と調整の時間が経っても、私はまだそれを働かせることはできませんので、私はあなたが私を助けることができるかどうか聞いています。jackson-databind "オブジェクトは宣言クラスのインスタンスではありません"

私は次の方法があります。

@GET 
@Produces(MediaType.APPLICATION_JSON) 
@Path("getTerminalsByIdAndLocation") 
List<SearchResultDto> getTerminalsByIdAndLocation(@QueryParam("location") String location, @QueryParam("id") Integer id) throws BusinessException; 

や機能の実装は、単にリポジトリ内の検索を実行しているし。

SearchResultDtoは次のようになります。私をしようとの多くは、私はちょうどうと思った後

Caused by: com.fasterxml.jackson.databind.JsonMappingException: object is not an instance of declaring class (through reference chain: java.util.ArrayList[0]-><long package>.SearchResultDto["terminalId"])

:私は今、私のメソッドを呼び出していた場合

@JsonIgnoreProperties(ignoreUnknown = true) 
public class SearchResultDto implements Serializable { 
    private static final long serialVersionUID = 1L; 

    private TerminalId terminalId; 
    private Integer location; 
    private String streetNumber; 
    private String postalcoldeCity; 
    private Status status; 

    // getters and setters with no annotation or so 
} 

私は、次のエラーを取得しています端末IDを削除してから、次のように変更します。

Caused by: com.fasterxml.jackson.databind.JsonMappingException: object is not an instance of declaring class (through reference chain: java.util.ArrayList[0]-><long package>AtmSearchResultDto["location"])

私は無知です、ここで何が間違っていますか?私は私のクラスパスを台無しにし、2つのクラスローダがありました。私もString streetNumber以外のすべてに@JsonIgnoreを使用してみましたが、その後同じ例外はただのためのstreetNumber

+0

私はクラスローダーなどのいくつかの問題があるようです。私はいくつかのデバッグ出力を追加しました(または試してみました)、次のようなエラーが出ました: ' .SearchResultDtoは .SearchResultDto'にキャストできません –

答えて

1

かいつまんで起こる

EDIT

別のクラスローダーからインスタンスを取得したデータベースモジュールからのリポジトリと呼ばれるRESTメソッドの実装です。私のMavenスコープとインポートタイプを調整した後、今は動作しています!

関連する問題