CXFで開発されたRESTクライアントをTomEE/TomEE + 1.0で使用したいのですが、JAXB JSONマーシャリング/アンマーシャリング(Jacksonライブラリを使用)に少し問題があります。Jersey Client1.1.13とCXFWebClient(Tomee + 1.0に含まれているバージョン)の両方を試しましたが、展開時に同じエラーが発生します。
org.apache.openejb.OpenEJBException:「localhost/mywebapp.Comp」のタイプ「javax.ws.rs.ext.Providers」のリソース参照「null」に使用できるプロバイダーがありません
'jackson-jaxrs-json-provieder-2.0.4.jar'jarをTomEElibディレクトリにコピーしようとしましたが、エラーは同じです。また、システムプロパティ「openejb.cxf.jax-rs.providers」を「com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider、com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider」に設定しようとしましたが、何も変更されていません。
これは、CXFでREST呼び出しを行うために使用するコードのサンプルです。
final List<Object> providers = new ArrayList<Object>();
providers.add(new JacksonJaxbJsonProvider());
WebClient wc = WebClient.create(url, providers);
とにかく、エラーはデプロイ時に発生するため、このコードは実行されません。私のウェブアプリ(Jersey Clientで開発されたバージョン)はGlassfish3.1.2で動作します。
問題はどこだ?
ありがとう、さようなら、デミス