読者です 読者をやめる 読者になる 読者になる

Eclipse+JSF+JPAで作るアプリ(3)―Hello World(2)

Glassfish Java JSF

後半です。

  • Dynamic Web Projectの作成
  • JPAJSF facetの設定
  • index.xhtmlの作成
  • web.xmlの編集
  • warファイルのエクスポートとautodeployへのコピー

JSFの特徴はjspではなく、xhtmlを使うところです。

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

1. Eclipseの[New]->[Other]->[Dynamic Web Project]を選択します。f:id:tshix:20150720210139p:plain

2. Target Runtime=Glassfish 4を選択し、
f:id:tshix:20150720210451p:plain
Configurationの[Modify]ボタンを押して、JSF2.2と、JPA2.1のFacetsを追加します。
f:id:tshix:20150720210521p:plain

3. Javaのページではsrcフォルダが表示されますが、何もしません。

4. JPA Facetのページでは、Connectionのところから、Add Connectionのリンクをクリックします。
f:id:tshix:20150720211427p:plain

5. SQL Serverドライバの設定を入力していきます。
f:id:tshix:20150720211814p:plain
なお、ドライバは、次のURLから入手できます。
https://www.microsoft.com/ja-jp/download/details.aspx?id=11774
f:id:tshix:20150720211656p:plainf:id:tshix:20150720211711p:plain
URL=jdbc:sqlserver://localhost:1433;databaseName=YourLibrary
Driver Class=com.microsoft.sqlserver.jdbc.SQLServerDriver
くらいが入力が大変な個所でしょうか。

ちなみにSQLServerのインストールの仕方次第(照合順序をJapanese‗BIN2というものでインストール)ですが、データベース名やテーブル名の大文字小文字を区別するので注意が必要です。

SQLServerのデフォルトでは、大文字小文字を区別しません。コードポイント法というバイナリ比較を指定するほうがよいでしょう。

6. Connectionのダイアログで、ユーザ名、パスワードを入力します。
f:id:tshix:20150720212501p:plain
[Test Connection]ボタンからデータベース接続を確認します。
成功すると、下のダイアログが表示されます。
f:id:tshix:20150720212720p:plain
接続に失敗する例ですが、ポート番号1433がSQLServer構成マネージャーで指定されていない、ファイアウォールの受信許可ができていない、データベース名が大文字小文字が異なる場合などです。

7. 次に、Web Moduleのページです。web.xmlを作成するにチェックを入れて[Next]を押します。
f:id:tshix:20150720212831p:plain

8. JSF-capabilitiesのページでは、faces/*となっている個所を、*.xhtmlと変更し、[Finish]を押します。
f:id:tshix:20150720213524p:plain

Hello World.の作成

WebContentの下に、以下のindex.xhtmlを作成します。

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html">
<h:head>
	<title>JSF+JPA</title>
</h:head>
<h:body>
Hello world.
</h:body>
</html>

また、web.xmlのwelcome-fileに、index.xhtmlだけが含まれるよう書き換えます。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>YourLibrary</display-name>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
  <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>
</web-app>

Warファイルのエクスポート

Eclipseのプロジェクトを選択し、Warファイルをエクスポートします。

C:\eclipse\workspace\YourLibrary.war

などに出力します。

Glassfishへのデプロイ

アプリケーションサーバー上で、アプリケーションを使用できるように配置することをデプロイといいます。

Glassfishでは、autodeployというフォルダに置くと、自動でデプロイされます。C:\Java\glassfish4にインストールしている場合、以下のパスがautodeployになります。

C:\Java\glassfish4\glassfish\domains\domain1\autodeploy

デプロイされると、Glassfishのコンソール(http://localhost:4848)で、以下のように表示されます。
f:id:tshix:20150720221252p:plain

Hello worldへアクセスする。

http://localhost:8080/YourLibraryにアクセスし、
Hello worldが表示されることを確認しましょう。
f:id:tshix:20150720221310p:plain