0
@ConversationScoped
public class BackingBean

{

    @Inject Conversation conversation;



    public BackingBean() {}



     ...

}

Intellijが警告を表示するのはなぜですか:「依存関係が満たされていない:インジェクションポイントに一致するBeanがありません。」

CTRL + F1の詳細メッセージは、「依存関係があいまいな注入ポイントを検出する」です。

コンパイルおよびデプロイされ、JBossで正常に実行されるようです。たとえば、conversation.begin()、conversation.end()などが可能です。

4

2 に答える 2

2

プロジェクト構造->モジュールに移動しました。Webモジュールを選択しました。CDIファセットに気づきました。ファセットをクリックすると、Apache OpenWebBeansまたはJBossWeldの2つのラジオボタンのどちらも選択されていないことに気付きました。JBossWeldを選択しました。次に、エラーメッセージが表示されました。

「次のライブラリがありません:weld-api.jar、weld-core.jar、weld-logger.jar、weld-se.jar、weld-servlet-int.jar、weld-spi.jar、weld-tomcat-support .jar、weld-wicket.jar "

「修正」ボタンをクリックしました。「ライブラリのセットアップ」というダイアログが開きました。「ライブラリを使用する」または「ダウンロードする」のいずれかを選択しました。

ダウンロードを選択しました。

Intellijは8つのjarファイルをダウンロードし、それらを$ PROJECT_HOME/libディレクトリにインストールしました。

現在、会話を挿入しても警告は表示されません。

于 2012-08-16T17:10:59.843 に答える
1

サーバー上で実行されている場合は問題ありません-Ideaにバグを見つけたか、プロジェクトのCDIの性質を何らかの形で誤って構成したようです(Conversation確かにクラスパスにありますが、Ideaによってスキャンされていない可能性があります)...

私は後者を疑っています:)

于 2012-08-15T12:57:51.917 に答える