2012-08-07 156 views
1

我用的新泽西州和杰克逊落实我的服务器提供的RESTful服务调用。数据在客户端和服务器之间作为JSON文档进行交换。杰克逊做了JSON文档和POJO之间的映射。这很好。JsonParseExceptionMapper不是由新泽西

但我遇到了一个问题。使用格式错误的JSON文档调用服务时,服务器返回500错误。我会期望一个400 BAD - 请求错误。泽西文档中的一些搜索向我展示了可以使用ExceptionMappers来存档此行为。我还发现Jackson已经有了一个JsonParseExceptionMapper实现,但它永远不会被调用。

我必须注册映射如果是的话我怎么能做到这一点的源代码之外?

+0

查看线程:http://stackoverflow.com/questions/3293599/jax-rs-using-exception-mappers – 2012-08-07 09:25:03

+0

是的,我看到了这个问题,但我不希望实现自定义映射器类而是使用现有的。所以我正在寻找一种在源代码之外注册的方法。 – Flo 2012-08-07 09:35:32

回答

2

好吧我发现了如何注册映射类。

在web.xml其中Jersery ServletContainer注册你必须通过杰克逊包名org.codehaus.jackson.jaxrs你的包名称旁如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> 
+0

不错的一个。感谢您的调查。 – 2012-08-07 10:46:40