Tomee さんの多大なサポートのおかげで、ようやく方法がわかりました。というわけで...ここです!
まず、これが最新のTomee 1.6 JAX-RS バージョンでどのように実現されるかを説明することから始めます。このバージョンは間もなく安定版としてリリースされます。ちなみに現在も安定しています。
Maven Java EE 6 Web アプリケーション プロジェクト (NetBeans を使用して生成) があると仮定すると、手順は次のとおり
です。 1. pom.xml に Jackson 依存関係を追加します。
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
</dependency>
2. 以下を含む WEB-INF (web.xml のあるフォルダー) に openejb-jar.xml を作成します。
<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
<pojo-deployment class-name="jaxrs-application">
<properties>
cxf.jaxrs.providers = org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
</properties>
</pojo-deployment>
</openejb-jar>
この構成の詳細については、 @rmannibucauからの1と2
の
編集を参照してください。カスタム jaxrs Application サブクラス (たとえば @ApplicationPath を使用) を使用する場合は、「jaxrs-application」の代わりにこのクラスの修飾名を設定します (つまり、デフォルトのアプリケーション)。
3. Jackson なしでは機能しない JAX-RS リソースを作成します (例: 単純なリスト)。
import java.util.Arrays;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/jackson")
public class Resource {
@GET
@Produces({MediaType.APPLICATION_JSON})
public Object sayHelloJson() {
return Arrays.asList(new String[]{"Peter", "pan", "Ihihi"});
}
}
4. Tomee 1.6.0 JAX-RS エディションにデプロイし、アプリを起動します。http://localhost:8080/yourAppPath/jackson
このガイドは、NetBeans 7.4 のバージョン 1.6.0 2013.10.24 でテストされています。
最新の Jackson が必要な場合は、以前の依存関係を次のものに置き換えます。
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.2.3</version>
</dependency>
openejb-jar.xml を変更して、以下を含めます。
cxf.jaxrs.providers = com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider
Tomee 1.5.2
このバージョンでは、1.6.0 のようにアプリケーション レベルではなく、リソースごとにプロバイダーを指定する必要があります。詳細については、こちらをご覧ください。