「EclipseでJSFのmavenベースのプロジェクトを作るには」の版間の差分

提供: tknotebook
移動: 案内検索
(事前準備)
20行: 20行:
 
# '''[ファイル]→[新規]''' のダイアログで、'''[その他]→[サーバー]→[サーバー]''' を開く
 
# '''[ファイル]→[新規]''' のダイアログで、'''[その他]→[サーバー]→[サーバー]''' を開く
 
# '''Glassfish Tools''' を選択してインストールする。これは一度だけ行っておけばOK。
 
# '''Glassfish Tools''' を選択してインストールする。これは一度だけ行っておけばOK。
# 再び '''[その他]→[サーバー]→[サーバー]''' を開くとGlassfish 4.0 が選択できるようになっているので登録を行う。
+
# 再び '''[その他]→[サーバー]→[サーバー]''' を開くとGlassfish 4 が選択できるようになっているので登録を行う。
  
 
==mavenプロジェクトを作成する==
 
==mavenプロジェクトを作成する==

2016年8月18日 (木) 03:20時点における版

メインページ>コンピュータの部屋#Java>Java Tips


JSFの解説本はほとんど IDE に NetBeans を使うことを勧めていますが、確かに、Eclipse では若干面倒なようです。 でもちょっとしたことを知っていれば使えます。

以下に maven ベースの JSF のプロジェクトの作成手順を紹介します。ややこしいことは大体 Eclipse がやってくれますので割と簡単です。

以下の手順は Pleiades All in One(4.6=Neon)と Glassfish 4.1.1 で確認してあります。 他の組み合わせはよくわかりません(^^;

事前準備

予め JSFをサポートしているサーバをインストールし、ランタイムを[サーバ]プロジェクトに登録しておいてください。 ここでは Glassfish4.X サーバの手順を紹介します。


  1. [ファイル]→[新規] のダイアログで、[その他]→[サーバー]→[サーバー] を開く
  2. Glassfish Tools を選択してインストールする。これは一度だけ行っておけばOK。
  3. 再び [その他]→[サーバー]→[サーバー] を開くとGlassfish 4 が選択できるようになっているので登録を行う。

mavenプロジェクトを作成する

  1. mavenプロジェクトを新規作成する。
  2. ウィザードの最初のダイアログで[シンプルなプロジェクトの作成]にチェックを入れる。必要ならワーキングセットを割り当てる。
  3. 次のダイアログで、groupId, artifactId を入力、パッケージングは war を選択し、[完了]を押す。

これで mavenプロジェクトが出来上がりままずが、まだ Webプロジェクト汎用です。

JSFを使えるようにする

出来上がったプロジェクトの[プロパティ」を開き、[プロジェクト・ファセット]を選びます。

  1. [ランタイム]タブを選び、使うサーバのランタイムにチェックを入れます。
  2. [Java]でバージョンを指定します。最近なら1.8でよいでしょう。選んだサーバのランタイムによっては 1.8が選べない場合もあります。
  3. [JavaServer Faces]にチェックを入れ、バージョンを選んでください。最近なら 2.2でしょう。
  4. [動的Webモジュール]がチェックされていることを確認してください。バージョンは3.1にしてください。
  5. OKボタンを押します。

以上で、JSF を使うための、faces-config.xml や web.xml は、Eclipseが自動で作成されますが Neon が自動生成した web.xml では動かないようです。

具体的には、JSFのタグは正常に展開されますが、 バッキングビーンが ELから認識できず、例外が発生してしまいます

詳細は良く調べていないので、ひょっとすると Servlet仕様3.1 の場合のみかもしれませんが 今時 Servlet仕様は 3.1 に設定すると思うので、以下の web.xml を使ってください。 これは実は NetBeans が自動生成する web.xml のコピーです(^^;

Eclipseの web.xml との違いはサーブレット仕様のバージョンcontext-param タグの有無のようです。

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>