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