是否有任何方法可以替代或更新Jersey的Jackson版本?

问题描述 投票:3回答:2

[我们正在尝试使用Jackson 1.5来利用它提供的某些多态处理功能,但是Jersey似乎带来了它自己的过时版本的Jackson(1.1.1)。在测试Jersey序列化的JSON时,与在单元测试中手动进行序列化时,我们得到的结果不同。

{
  "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
}

不幸的是,无法使用Jackson 1.1.1。有什么方法可以让Jersey使用Jackson 1.5?正在考虑尝试在Jersey Config类或其他类中进行设置...

json maven-2 jersey jackson
2个回答
1
投票

[如果Jersey的Maven POM不允许您将Jackson依赖与Jersey依赖分开,那么您可以手动持有各个JAR,将Jackson 1.5.x JAR换成1.1.x 。

请注意,不能保证Jersey可以与较新的Jackson版本一起使用。杰克逊的API在1.1版本中发生了很大变化。


0
投票

[您没有提供太多详细信息(尤其是有关您的运行时环境的信息),所以我只讨论问题的最主要的部分:在dependencyManagement部分下声明Jackson的1.5版,以强制具有jackson的其他依赖项中的收敛作为依赖项。

尽管这将在运行时有效,但读者可以自己练习:)

为了记录,这是我们可以在V3.1JerseyOnePager中阅读的内容:

Jersey当前在GlassFish 3.0中使用Jackson 1.1。该版本将从3.1升级到最新的稳定版本(当前为1.5.2)。

© www.soinside.com 2019 - 2024. All rights reserved.