WEBアプリケーション作成2
今日は
最速でJava EE 7 Webアプリを作る – 2014 Java EE Advent Calendar | Mushagaeshi.com
を参考に実施(OS:ubuntu 15.04)
DB作成
1.workbench install
参考:MySQL :: MySQL Workbench :: 2.4.1 Installing
>| sudo apt-get install -y mysql-workbench
2.workbench からwebシステム用アカウントを作成 & 権限設定
user: myweb 権限:custom (select,insert,update,delete)のみ
3.netbeans で DB接続設定、テーブル作成
CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `seq_id` int(10) unsigned NOT NULL , `name` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`) );
サーバーサイド
4 . プロジェクト 作成
プロジェクト>Maven >Webアプリケーション>test-server
5.POM.xmlを修正
6. Mysql サーバーを接続確認する
作成したアカウントでMysqlに接続する Serveたぶ>Mysql>接続
7.テーブルエンティティ作成
新規>DBからエンティティ作成 >DBを作成したDB選択&JDNI名をつける
作成したテーブル(users)が使用可能な表として出てくるので選択し、適当に次へ > パッケージ名「test.server.entity」
8.DAO作成
新規>エンティティクラスのセッションBean > パッケージ名「test.server.dao」
9.logic クラス作成
新規>セッションBean > パッケージ名「test.server.logic」
フロント側作成
10. faceletと連携させるため以下の手順で作成
1. 構成ファイルの作成 :faces-config.xml
新規>JavaServerFaces > JSF Faces構成
2. web.xml
servlet-mapping を以下に変更。プロジェクト>右クリ>フレームワークで「JavaServer Faces 」で同処理を実施
>|
3.faceletの作成
新規>JavaServerFaces > JSFページ ※ファイル名は何でもいい
4.Backing Beansの作成
新規>JavaServerFaces > JSF管理対象Bean >「構成ファイルにデータを追加」にチェックすること!
※チェックしないと自分でfaces-config.xml に追加しないといけない
Backing Beansがよくわからなかったのでググった。以下が参考になりました。
JSFによるWebアプリケーション開発
要は、画面への入出力データの受け渡し・検証用のオブジェクトと理解。複数画面での共有も可能な様子
12. 実行したところ下記エラー
java.lang.RuntimeException: Invalid resource : XXXXXX__pm
glassfish 管理コンソールからconnection pool&resource を作成
以下作業の参考:
NetBeans Eコマース チュートリアル-データベースへのアプリケーションの接続
手順3〜15:The NetBeans E-commerce Tutorial - Setup Instructions
13. Connection pool and JDBC 作成
the Resources > JDBC node, then click the Connection Pools >Newクリック
Name: DB名 Resource Type: javax.sql.ConnectionPoolDataSource Database Vendor: MySql
13-1 . user/pass/urlの設定
※glassfish-resources.xmlに記載されているものと同じ値を設定
Additional Properties user/passがない場合は AddProperty
14.接続確認
General tab > ping クリック
15 JDBC Resources 作成
Resources > JDBC > JDBC Resources > Newクリック
User: user名 Password: パス URL: jdbc:mysql://localhost:3306/DB
glassfish を停止&リフレッシュ
16.実行すると以下エラー
WELD-000072: Bean declaring a passivating scope must be passivation capable.
→ indexBeanにSerializableを追加
public class indexBean implements Serializable{
再度実行し、正常に起動。
あとはcrash&buildしたり、いろいろ勉強して制作速度と精度を上げていく
〜余談〜
アノテーションのスコープが知りたい。以下のサイトが為になった。
JSF管理対象Beanのスコープを基礎からおさらいしてみる - Challenge Java EE !
CDIとJSFの違いをきちんと知りたい。以下のサイトをきっかけにさせていただく
JavaEE7 な JSF 2.2 の ViewScoped を試してみる - 割と普通なブログ