2011-07-18 12 views
1

例の後にhere Grizzlyコンテナを使用してサンプルリソースを配備する場合。 これは、クラスとして定義されたリソースを使用します。代わりに、アノテーションとのインタフェースを定義し、そのインタフェースをリソースクラスに実装させたいと思います。JAX-RS Jersey/Grizzlyインタフェースリソースを定義します

問題は今グリズリーはそれがリソースを見つけることができないといってきていることである:

:「com.mycompany.packは」実装クラスを含むパッケージであるメインクラス、オン

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not  contain any root resource classes. 

final String baseUri = "http://localhost:9999/"; 
final Map<String, String> initParams = new HashMap<String, String>(); 
initParams.put("com.sun.jersey.config.property.packages", "com.mycompany.pack"); 

[編集]:ただし、クラスにアノテーションを追加するときにも機能します。 注釈がインタフェースレベルでのみ宣言される方法がある場合。

答えて

1

JAX-RS注釈付きのクラスのみを検索するため、パッケージスキャンでは実行できません。異なる方法を使用する必要があります.Jerseyユーザーガイドに記載されているconfiguration optionsのいずれかを使用してリソースクラスを明示的に宣言するか、jersey-springを使用してインスタンスを管理することもできます。ジャージースプリングでは、あなたが望むようなインターフェースを使用するための特別なステップはありません。インターフェイスに注釈を付け、実装をSpring Beanにして、それが機能するだけです。

+0

これはジャージー2で変更されましたか? – Jayen

+0

ジャージー2についてよく分かりません。あなたがまだそれについて知りたいのであれば、新しい質問をすることをお勧めします。 –

関連する問題