既存の JSF 2-Websphere アプリケーションで CDI をセットアップしたいと考えています。状態の保存に CDI Conversional スコープを使用しています。
WEB-INF に bean.xml を含め、クラスに注釈を含めましたが、それでも JSP ページ内の CDI Bean にアクセスできませんでした。これを行う方法についてサンプルを提供できる人はいますか?
WebSphere 8.5.5 では問題なく動作します。クラスに注釈を付ける必要があり@Named("yourName")
、通常はスコープ関連の注釈を使用します。
次に、次のように EL を使用して、プレーンな jsp で Bean にアクセスできます。${yourName.property}
Weldのホームページには次のように記載されています
サーブレット コンテナ (Tomcat/Jetty) または Java EE 5 アプリケーション サーバーの場合:
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>1.1.10.Final</version>
</dependency>
18.3 . サーブレット コンテナー (Tomcat や Jetty など)からも次のように言われました。
JSR-299 はサーブレット環境のサポートを必要としませんが、Weld は Tomcat 6.0 や Jetty 6.1 などのサーブレット コンテナーで使用できます。
Weld can be used as a library in an web application that is deployed to a Servlet container. You should place
weld-servlet.jar
within theWEB-INF/lib
directory relative to the web root.weld-servlet.jar
is an "uber-jar", meaning it bundles all the bits of Weld and CDI required for running in a Servlet container, for your convenience. Alternatively, you can use its component jars. A list of transitive dependencies can be found in theMETA-INF/DEPENDENCIES.txt
file inside theweld-servlet.jar
artifact.
Firstly we also need to explicitly specify the servlet listener (used to boot Weld, and control its interaction with requests) in WEB-INF/web.xml
in the web root:
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
I hope this may help.