3

私は次のプロジェクト構造(Maven)を持っています:

- war with `WEB-INF/beans.xml`, `WEB-INF/web.xml` and REST service configuration
- ext-spi (packaged as jar, not bean archive) which provides some simple SPI, finally goes to `war/WEB-INF/lib`  
- ext - parent project (pom)  
-- ext-impl (jar, bean archive - META-INF/beans.xml exists) - contains CDI Interceptor (both binding and implementation) + some REST service (RequestScoped CDI Bean) which is annotated with mentioned Interceptor Binding finally goes to `war/WEB-INF/lib`  
-- ext-model (jar) - contains REST service API and data model, finally goes to `war/WEB-INF/lib`

問題は、Interceptor が機能しないことです。もちろん、(との異なる組み合わせ)で有効にしましbeans.xmlた。エラーも警告もありません。jar から読み取られていないように見えます-インターセプターを有効にするときに指定した偽のクラスパスや、不正な形式の xml タグについても文句はありません。同じ Bean アーカイブから別の CDI Bean を ing する場合、同じ CDI Bean に問題はありません。warext-implMETA-INF/beans.xml@Inject

直接作成された CDI Bean で同じインターセプターを使用しようとすると、warすべてが完全に機能します。

仕様によると、それは動作するはずです。

アプリケーション サーバー: Glassfish 3.1.2.2

インターセプター:

@Inherited  
@InterceptorBinding  
@Target({ ElementType.TYPE, ElementType.METHOD })  
@Retention(RetentionPolicy.RUNTIME)  
public @interface ResourceInterceptorBinding {
}

何が間違っているのか分かりますか?

4

2 に答える 2

0

キックと笑いのためだけに、war Beans.xmlを追加して、何が起こるかを確認してください。

于 2013-02-03T16:14:20.387 に答える
0

興味のある方へ: Glassfish のバグのようです。次の Jira の問題を見つけました: http://java.net/jira/browse/GLASSFISH-18802

編集:さらに悪いことに、下にあるすべての Bean アーカイブでインターセプターを有効にする必要がありましたMETA-INF\lib。そうしないと、単に機能しません。

于 2013-02-06T21:22:24.020 に答える