3

We're trying to use Jackson 1.5 to take advantage of some of the polymorphic handling it offers, but it appears that Jersey brings along it's own outdated version of Jackson (1.1.1). When testing Jersey serialized JSON, we get different results than when we serialize by hand in unit tests.

{
  "id": "40",
  "ticketProps": [{
    "id": "28",
    "field": {
      "id": "28",
      "name": "WXYZ",
      "strict": "false",
      "valueType": "STRING"
    },
    "value": "W"
  }, {
    "id": "29",
    "field": {
      "id": "29",
      "name": "SEAT",
      "strict": "false",
      "valueType": "STRING"
    },
    "value": "4A"
  }]
}

{
  "id": "40",
  "ticketProps": [{
    "id": "28",
    "field": {}
  }, {
    "id": "29",
    "field": {}
  }],
  "name": null
}

Unfortunately using Jackson 1.1.1 is not an option. Is there any way to get Jersey to use Jackson 1.5? Was thinking of trying to set it in the Jersey Config class or something...

4

2 に答える 2

1

Jersey の Maven POM で Jackson の依存関係を Jersey の依存関係から分離できない場合は、Jackson 1.5.x JAR を 1.1.x JAR と交換して、個々の JAR を手動で取得できます。

Jersey が新しい Jackson バージョンで動作するという保証はないことに注意してください。Jackson の API は、1.1 リリースの前後でかなり変更されました。

于 2010-07-12T20:11:18.063 に答える
0

詳細 (特にランタイム環境について) を提供しなかったので、質問の maven 部分のみを取り上げます。Jackson をdependencyManagement依存関係として持つ他の依存関係の収束を強制するセクションの下で、Jackson のバージョン 1.5 を宣言します。

これが実行時に機能するかどうかは、読者の課題として残されています:)

記録として、V3.1JerseyOnePagerで読み取れる内容は次のとおりです。

Jersey は現在、GlassFish 3.0 で Jackson 1.1 を使用しています。バージョンは 3.1 で最新の安定バージョン (現在は 1.5.2) にアップグレードされます。

于 2010-07-12T22:27:22.993 に答える