Jackson集成(Jersey 2.X)

What?

Jackson is a Java JSON API which provides several different ways to work with JSON. Jackson is one of the most popular Java JSON APIs out there.
https://github.com/FasterXML/jackson

總結(jié)一下:
流行的Java JSON API

Why?

Jersey 默認集成的Moxy 不是太好用,抑或是我自己沒搞明白
示例如下:

public class ResObject<T> {
    private String code;
    private String message;
    private T data;
}

以上為通用的接口返回對象,若基于Jersey2.X在返回時會出現(xiàn)異常,例如:

//相應(yīng)對象泛型為基礎(chǔ)類型
ResObject<Integer> res = new ResObject<>();
res.setData(1);

How?

  • 添加maven依賴
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>${jersey.version}</version>
</dependency>
  • 修正Jersey配置 方式一(javax.ws.rs.Application)
<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>AppsResource</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

-修正Jersey配置 方式二(web.xml配置)

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.disableAutoDiscovery</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.ws.jaxrs.jersey;org.codehaus.jackson.jaxrs</param-value>
        </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

注: 需要禁用Jersey的自動掃描選型來禁用Moxy

參考:
Jersey 使用參考
Jersey 配置屬性
Jersey Guide
Jersey 集成Jackson

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容