複数のejb-jarとwarを含むEARファイルがあります。ejb-jarに、次のようなインターフェイスの複数の実装を挿入します。
@Inject
@Any
private Instance<ConfigurationProviderLocal> providerEjb;
このインターフェースの実装は戦争で定義されています。この実装は正常にデプロイされます。
Glassfish v3.1ログには、次のように表示されます。
情報:EJB FormConfigurationProviderBeanのポータブルJNDI名:[java:global / com.dialog.edialog_eservices_ear_1.0.1-SNAPSHOT / checkout-form-1.0-SNAPSHOT /FormConfigurationProviderBean、java:global / com.dialog.edialog_eservices_ear_1.0.1-SNAPSHOT / checkout- form-1.0-SNAPSHOT /FormConfigurationProviderBean!com.dialog.sbsm.talisker.core.config.api.ConfigurationProviderLocal]
しかし、私の実装の反復では:
for (ConfigurationProviderLocal provider : providerEjb) {
[...]
}
実装FormConfigurationProviderBean
が繰り返されることはありません。これを説明できるメッセージはログにありません。
また、戦争をスタンドアロンで展開すると(耳の内側ではなく、依存関係が埋め込まれている)、インジェクションは正しく機能します。
実装が戦争内で定義されている場合、CDIはサポートされますか?クラスローダーの問題はありますか?