EclipseでJSFのmavenベースのプロジェクトを作るには

提供: tknotebook
2016年8月17日 (水) 21:48時点におけるNakamuri (トーク | 投稿記録)による版

移動: 案内検索

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


JSFの解説本はほとんど IDE に NetBeans を使うことを勧めていますが、Eclipseも十分使えます。

maven ベースの JSF のプロジェクトの作成手順を紹介します。ややこしいことは全て Eclipse がやってくれますので簡単です。XMLの設定ファイルをゼロから作ったりする必要はありません。

以下の手順は Pleiades All in One(4.6=Neon)で確認してあります。

事前準備

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


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

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 に差し替えないと動かないようです。

詳細は良く調べていないので、ひょっとすると Servlet仕様3.1 の場合のみかもしれませんが 今時 3.1 に設定すると思うので、以下の web.xml を使ってください。

<?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>