2012-08-07 124 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