3

我正在使用 Jersey v1.9.1 开发 RESTful Web 服务。一些方法返回 JSON。当我想调试我的应用程序时,我从一个 grizzly 服务器开始,否则为了生产,我构建一个 war 文件并将其放置在 TomCat v7 安装中。我的项目都是 Maven2 项目。

现在,我注意到对于返回 的方法List<CustomObj>,其中CustomObj有适当的 JAXB 注释,即@XmlRootElement(name="CustomObj")所有相关成员的 getter/setter:

  • 使用grizzly,我得到类似的东西{"CustomObj":[{<fields-of-customObj>},{<fields-of-customObj>},{<fields-of-customObj>}]}(当列表有 3 个元素时)。用 GSON 解析它可以正常工作。
  • 但是,使用TomCat,我得到了:[{<fields-of-customObj>},{<fields-of-customObj>},{<fields-of-customObj>}]-> 如您所见,“根”以某种方式丢失了

我的印象是该jersey-json模块(我包含在我的 Maven2 依赖项中)根本没有在 TomCat 中使用,即使它们应该被使用(它们肯定会在 Grizzly 中使用)。此外,按照此处所述创建我自己@Provider的 a仅适用于 grizzly,在 TomCat 中永远不会调用该方法。ContextResolver<JAXBContext> getContext()

TomCat 有什么需要考虑的吗?

干杯!

4

0 回答 0