2012-10-14 14 views
13

Bazı Java REST hizmetlerini uygulamak için Jersey'i kullanmak istiyorum. Varsayılan POJO dönüştürücü JAXB, JSON nesnelerini biraz garip olarak ele alır, bu yüzden Jackson'ı POJO'ları az veya daha fazla ek yük ile dönüştürmek için kullanmak isterim. J2ME çerçevesine başka bir dönüştürücü kullanmasını nasıl söyleyebilirim?Jumper for Jersey'i kolayca kullanabilir

<!-- Jersey JAVA REST implementation --> 
<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>org.foobar.rest.services</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

cevap

16

basitçe jackson kavanozları ekleyip böyle web.xml değiştirin::

Benim web.xml şöyle

<!-- Jersey JAVA REST implementation --> 
<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>org.foobar.rest.services;org.codehaus.jackson.jaxrs</param-value> <!-- use jackson for JSON --> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

Jackson JARs gerekli (http://jackson.codehaus.org/) şunlardır:

jackson-core-asl-1.9.10.jar 
jackson-core-lgpl-1.9.10.jar 
jackson-jaxrs-1.9.10.jar 
jackson-mapper-asl-1.9.10.jar 
jackson-mapper-lgpl-1.9.10.jar 
jackson-mrbean-1.9.10.jar 
jackson-smile-1.9.10.jar 
jackson-xc-1.9.10.jar 
+1

Vay şu basit – daskai0815

+0

O (teşekkürler!) benim için çalışmıyor. Bir hata alıyorum "Java sınıfı için bir mesaj gövdesi yazıcısı ... ve MIME medya türü uygulaması/json bulunamadı" – TOUDIdel

+0

Maven ile gerekli Jackson JAR'ları çekmek için sadece jackson-mapper-asl'a bağlı olarak. – lanoxx

5

Jackson 1.x sağlayıcısına kaydolmanın yanı sıra, alternatif olarak, Jackso'yu da kullanabilirsiniz. n 2.x JSON sağlayıcısı (Jackson 2.x veri tabanına ve çekirdek modülüne bağlıdır): https://github.com/FasterXML/jackson-jaxrs-json-provider Servis sağlayıcısı arayüzü ile kendini otomatik olarak kaydettirir (1.x bu yana şaşkınlık duyacağından korkmamıştır. açık tercih yerine sınıf yolunda bir kavanozun varlığına dayanır).

DÜZENLEME (Eylül 2013): @koppor tarafından belirttiği gibi, bu modül kaldırılmasına karar verildi ve yedek olanlar (JSON, XML, Gülümseme) https://github.com/FasterXML/jackson-jaxrs-providers den bulunabilir

+1

Jackson 2.2 ile başlayarak, bu modül kullanımdan kaldırılmıştır. Bunun yerine https://github.com/FasterXML/jackson-jaxrs-providers adresini kullanın. – koppor