[Subsonic Airlines] 会員登録画面 – 設定ファイルの作成

今回から会員登録画面を作成します。

ソースコードはGitHubに置いてあります。
https://github.com/subsonicsystems/subsonic-airlines-members


開発環境
Windows 7 64ビット
Eclipse Luna 4.4.2 64ビット
JBoss Tools 4.2.3.Final
WildFly 8.2.0.Final
MySQL Connector/J 5.1.36
MySQL Community Server 5.6.26 64ビット

ライブラリ
PrimeFaces 5.2
Commons Lang 3.4

事前準備
WildFlyへJDBCドライバをインストール
http://subsonic.info/ja/2015/08/19/subsonic-airlines-wildflyへjdbcドライバをインストール/

WildFlyへデータソースを設定
http://subsonic.info/ja/2015/08/21/subsonic-airlines-wildflyへデータソースを設定/

データベースのスキーマ名、ユーザ名、パスワード、権限、データソースの設定は、上記の記事と全く同じにします。

PrimeFacesの取得
Mavenの場合は、pom.xmlのdependencies要素に次の要素を追加します。

<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>5.2</version>
</dependency>
<dependency>
    <groupId>org.primefaces.themes</groupId>
    <artifactId>bootstrap</artifactId>
    <version>1.0.10</version>
</dependency>

そして、repositories要素に次の要素を追加します。

<repository>
    <id>prime-repo</id>
    <name>PrimeFaces Maven Repository</name>
    <url>http://repository.primefaces.org</url>
    <layout>default</layout>
</repository>

Commons Langの取得
Mavenの場合は、pom.xmlのdependencies要素に次の要素を追加します。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

プロジェクトの作成
今回は、プロジェクト名をsubsonic-airlines-membersとしています。

subsonic-airlines-members.war
warファイルは、次の通りです。
user-register1

/WEB-INF/classes/META-INF/persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="primary">
        <jta-data-source>java:jboss/datasources/subsonic-airlines-membersDS</jta-data-source>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
      </properties>
    </persistence-unit>
</persistence>

persistence.xmlは、JPAの設定ファイルです。JPA(Java Persistence API)は、O/Rマッピング機能を提供します。

jta-data-source要素は、WildFlyのstandalone.xmlのdatasource要素のjndi-nameと対応しています。standalone.xmlでは、データベース接続情報を定義しているので、これらの定義により、アプリケーションからデータベースへのアクセスが可能となります。

property要素のhibernate.hbm2ddl.autoでcreateを指定しています。この指定を行うと、アプリケーションのデプロイ時にJavaで作成したモデルに基づいたデータベーステーブルが作成されます。

例えば、JavaのUserクラスに対応するテーブルが、データベース側にuserテーブルとして作成されます。データベースのテーブル名は、JavaのUserクラス内で指定します。

hibernate.hbm2ddl.autoでcreateを指定した場合、再デプロイするとデーブルのデータが消去されますので、開発時に必要な場合にのみ指定します。

/WEB-INF/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>primefaces.THEME</param-name>
        <param-value>bootstrap</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>*.xhtml</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

primefaces.THEMEにPrimeFacesのテーマ名を設定します。また、指定したテーマを含むjarファイルを/WEB-INF/libに配置します。

/WEB-INF/faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.2"
              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-facesconfig_2_2.xsd">
    <application>
        <resource-bundle>
            <base-name>info.subsonic.subsonicairlines.members.web.messages.Messages</base-name>
            <var>msg</var>
        </resource-bundle>
    </application>
</faces-config>

resource-bundle要素でアプリケーションメッセージの設定を行っています。

base-name要素にメッセージファイルの場所を指定します。

今回は、info.subsonic.subsonicairlines.members.web.messages.Messagesと指定しているので、Mavenプロジェクトの場合は、src/main/resourcesの下にinfo/subsonic/subsonicairlines/members/web/messagesディレクトリを作成して、Messages.propertiesファイルを配置します。
user-register2

warファイルでは、/WEB-INF/classes/info/subsonic/subsonicairlines/members/web/messages/Messages.propertiesとなります。base-name要素で.propertiesは付けないことに注意します。

var要素は、EL式で参照する際の名前を定義します。

次回に続きます。