「EclipseでJSFのmavenベースのプロジェクトを作るには」の版間の差分
(→事前準備) |
|||
20行: | 20行: | ||
# '''[ファイル]→[新規]''' のダイアログで、'''[その他]→[サーバー]→[サーバー]''' を開く | # '''[ファイル]→[新規]''' のダイアログで、'''[その他]→[サーバー]→[サーバー]''' を開く | ||
# '''Glassfish Tools''' を選択してインストールする。これは一度だけ行っておけばOK。 | # '''Glassfish Tools''' を選択してインストールする。これは一度だけ行っておけばOK。 | ||
− | # 再び '''[その他]→[サーバー]→[サーバー]''' を開くとGlassfish 4 | + | # 再び '''[その他]→[サーバー]→[サーバー]''' を開くと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 サーバの手順を紹介します。
- [ファイル]→[新規] のダイアログで、[その他]→[サーバー]→[サーバー] を開く
- Glassfish Tools を選択してインストールする。これは一度だけ行っておけばOK。
- 再び [その他]→[サーバー]→[サーバー] を開くとGlassfish 4 が選択できるようになっているので登録を行う。
mavenプロジェクトを作成する
- mavenプロジェクトを新規作成する。
- ウィザードの最初のダイアログで[シンプルなプロジェクトの作成]にチェックを入れる。必要ならワーキングセットを割り当てる。
- 次のダイアログで、groupId, artifactId を入力、パッケージングは war を選択し、[完了]を押す。
これで mavenプロジェクトが出来上がりままずが、まだ Webプロジェクト汎用です。
JSFを使えるようにする
出来上がったプロジェクトの[プロパティ」を開き、[プロジェクト・ファセット]を選びます。
- [ランタイム]タブを選び、使うサーバのランタイムにチェックを入れます。
- [Java]でバージョンを指定します。最近なら1.8でよいでしょう。選んだサーバのランタイムによっては 1.8が選べない場合もあります。
- [JavaServer Faces]にチェックを入れ、バージョンを選んでください。最近なら 2.2でしょう。
- [動的Webモジュール]がチェックされていることを確認してください。バージョンは3.1にしてください。
- 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>