1

我使用 Jersey 和 Jackson 来实现我的服务器提供的 RESTful 服务。数据在客户端和服务器之间交换为 JSON 文档。Jackson 在 JSON 文档和 POJO 之间进行映射。这很好用。

但是我遇到了一个问题。使用格式错误的 JSON 文档调用服务时,服务器返回 500 错误。我预计会出现 400 BAD-Request 错误。在 Jersey 文档中的一些搜索向我展示了 ExceptionMappers 可用于存档此行为。我还发现 Jackson 已经有一个实现 JsonParseExceptionMapper 但它永远不会被调用。

我是否必须注册映射器,如果是,我该如何在源代码之外执行此操作。?

4

1 回答 1

2

好的,我发现了如何注册映射器类。

在注册 Jersery ServletContainer 的 web.xml 中,您必须在包名称org.codehaus.jackson.jaxrs旁边传递 Jackson 包名称,例如com.example.myapp.api;。然后服务器在启动时扫描这些包并注册它找到的侦听器。

<servlet>
        <servlet-name>Jersey</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.example.myapp.api;org.codehaus.jackson.jaxrs</param-value>
        </init-param>
</servlet>
于 2012-08-07T09:56:11.320 回答