幻の tom 猫

<< 戻る   トップ >>

JSF 2.0 ノーテーションを使うまでに必要なライブラリたち

とり急ぎ今困っている現象について。@Named と @SessionScoped ノーテーションによって faces-config.xml への Managed Beans の登録なしに動作してくれると思ったのだが、これはどうやら誤り。faces-config.xml に登録⇨削除した場合にはどこかに登録した「記憶」が残っているから動作するらしい。

なんとかならんのか、と調べてみるとやはりパッケージやら設定が足りないらしい。TheServerSide.com の "Working with CDI and JSF 2.0 on Tomcat 7: Configuring Weld" にしたがって設定を追加する。

  1. org.jboss.weld.environment.servlet.Listener クラスが必要になる。これを含む jar ファイルは weld-servlet.jar であることがわかった。Fedora のシステムツール・ソフトウェアに該当するものがなかったので、Maven Repository からダウンロードした。他にも jar ファイルはあるだろうし、おそらく Fedora パッケージにも同等のものがあると思うのだが、とりあえずこれを使う。jar ファイルを例によって WEB-INF/lib に複写する。
  2. 次に、WEB-INF/web.xml に Listener 設定をする。
    <listener> 
        <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> 
    </listener>
    
  3. 最後に、WEB-INF 下に beans.xml ファイルを作る。ルート要素 <beans> のみで、ほとんどダミーのようなものではないかろうか。
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
    </beans> 
    

これにてようやくアノテーションを使って JSF が動作するようになった。これで WEB-INF/lib 下にある jar ファイルは5つになった。「JBoss?」という囁きがまた大きくなったような気もするが、もうちょっと猫と遊ぶとしよう。


作成: 2013-03-01 17:00:16.0更新: 2013-03-03 09:47:03.0
http://museo-anonimo.jp/nanban/?id=1190,http://museo-anonimo.jp/nanban/tr/1190