CentOSでJSFのプロジェクトを作る
- 環境
参考資料
久しぶりにJSF用のプロジェクトを1から作ろうと思い立った。
記憶も記録も美しいまでに消えていた。
以下のサイト様を見ながら記憶と記録を作り直す。
ittoybox.com
EclipseにPayaraを設定する
Payaraを配置する
# 1. 任意のディレクトリへ移動 $ cd /opt # 2. Payaraのzipファイルをダウンロード $ wget https://repo1.maven.org/maven2/fish/payara/distributions/payara/5.194/payara-5.194.zip # 3. zipファイルを解凍する $ unzip payara-5.194.zip # 4. 使い終わったzipファイルを削除する $ rm payara-5.194.zip # 5. .bash_profileで環境変数にPayaraを設定する $ vi ~/.bash_profile $ cat ~/.bash_profile $ export PATH=$PATH:/opt/payara5/bin $ source ~/.bash_profile # 6. 実行できるように権限設定する RUN chmod -R 777 /opt/payara5/glassfish
Mavenプロジェクトを作成する
- [Package Explorer]にカーソルを入れて「Ctrl + N」で新規作成ダイアログを表示する。
- [Maven] > [Maven Project] > [Next]ボタン
- [Create a simple project(skip archetype selection)]チェックボックスをONにする > [Next]
- 以下を設定して[Finish]ボタンでプロジェクトを作成する
- GroupId : プロジェクトのルートパッケージ名
- ArtifactId : プロジェクト名
- この時点でエラーがあっても見なかったことにする
コンパイラを設定する
- [Package Explorer]でプロジェクトを選択 > 「Alt + Enter」でプロパティダイアログを表示する
- [Java Compiler] > [Use compliance from execution environment 'JavaSE-1.5 on the 'Java Build Path']チェックボックスをOFFにする
- [Compiler compliance level]で「11」を選択 > [Apply]ボタンで適用する
- 以下のメッセージダイアログが表示されるので[Yes]でビルドを行う
JSFを設定する
- [Project Facet] > [Convert to Faceted...]リンクを押下して一覧を表示する
- [Java]をONにして[Version]を「11」にする
- [JavaServer Faces]をONにして[Version]を「2.3」にする
- [Dynamic Web Module]をONにして[Version]を「4.0」にする
- [Runtimes]タブ > 表示されたPayaraをONにする
- 下の方に出てくる[Further configuration required...]リンクを押下して[Modify Faceted Project]画面を表示する
- [Content directory : ]を設定する(今回はデフォルトのまま)
- [Generate web.xml....... : ]チェックボックスをONにする > [Next]ボタン
- 特に変更はしないで[OK]ボタンでダイアログを閉じる
- [Aply and Close]ボタンでプロパティダイアログを閉じる
- プロジェクトにエラーが有った場合は、エラーが消える(はず)
pom.xmlにJSFのライブラリを定義する
- Maven Repository: org.glassfish » javax.facesから任意のバージョンのMaven用定義をコピーする
- [JavaServer Faces]を「2.3」にしたので今回は「2.3.9」を使う
- Eclipseでpom.xmlを開いて定義を貼り付ける
- Maven Repository: org.primefaces » primefacesから任意のバージョンのMaven用定義をコピーする
- 今回は作業時点で最新の「8.0」を使う
- JSFでラジオボタンなどを使うのに便利
- 参考 : Primefacesの紹介
- [Package Explorer]でプロジェクトを選択 > 「Alt + F5」でダイアログを表示 > [OK]ボタンでMavenを更新する
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> ...省略... <dependencies> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> <version>2.3.9</version> </dependency> <!-- https://mvnrepository.com/artifact/org.primefaces/primefaces --> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>8.0</version> </dependency> </dependencies> </project>
ServletのバージョンをDynamic Web Moduleに合わせる
- src/main/webapp/WEB-INF/web.xmlを開く
- web-appの記載をDynamic Web Moduleに合わせる
- 参考 : web.xmlのバージョン別DTD・XSDの宣言方法 | KATSUMI KOKUZAWA'S BLOG
- バージョン4.0の場合は以下の記載になる
- [Package Explorer]でプロジェクトを選択 > 「Alt + F5」でダイアログを表示 > [OK]ボタンでMavenを更新する
<?xml version="1.0" encoding="UTF-8"?> <web-app 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_4_0.xsd" version="4.0"> <!-- 省略 -->
動かしてみる
ページを作成する
- [webapp]を選択して「Ctrl + N」で新規ダイアログを開く
- [Web] > [HTML File] > [Next]ボタンで進む > [File name:]に「index.xhtml」を入力し[Next]ボタン
- [Templates:] > [New Facelet Composition Page](新規Facelet構成ページ) > [Finish]ボタンで新規ページを作成する
- 以下のコードをindex.xhtmlに記載する
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:p="http://primefaces.org/ui"> <head> <title>MavenでJSFのプロジェクトをEclipseで作ってみた。</title> </head> <body> JSFのプロジェクト </body> </html>
Payaraを起動する
- [Package Explorer]でプロジェクトを選択して右クリック
- [Run As] > [Run On Server] > ダイアログでPayaraを選択して起動する
- http://localhost:8080/tryJsf/index.xhtmlにアクセスしてページが表示されたら動作確認完了