読書会(Java EE 7徹底入門)第1回議事録

[ 戻る ]


=========================================================================================================
Java読書会BOF 「Java EE 7徹底入門 - 標準Javaフレームワークによる高信頼性Webシステムの構築」を読む会 第1回
=========================================================================================================

.. csv-table:: 開催概要

   "日時", "2016年1月23日 10:00 - 17:00"
   "場所", "川崎市教育文化会館 第3会議室"
   "出席者(敬称略)", "伊藤、村山、高橋(徹)、高橋(智)、岩室、遠藤、平山、中島、小棚木、山田、吉田、松永、井上、吉本、石黒、今井(書記)"


*開会前の雑談から*

  - なせ猫写真?

    - Tomcatに対する雌猫?

    - Gradle徹底入門の著者は表紙を猫にしたかったが却下されたらしい。

著者紹介(p.567)
===============

はじめに
========

- p.vi 翔泳社のページに、サンプルプログラムの他に正誤表もある。既にいくつか載っています。

本書を読む前に
==============

Chapter 1 Java EEの基礎知識
===========================

1.1 Java EEのこれまで
---------------------

1.2 Java EEの全体像
-------------------

- p.9 Java Mail APIの2行目にあるNNTPはネットニュースのプロトコル
  Network News Transfer Protocolのこと。最近あまり見ないですね。

- p.9 DI/CDIの中ほど、「DIはJava SE内で定義されています。」の意味は?

  → 第5章を待ちましょう。

- p.10 JSON-Pは、JSONPのことではない。

- p.13 下から5行目行頭 衍字

  に対して対し提出して → に対して提出して

- p.14 表1.1 TCKは基本的に非公開のようだが、なぜだろう?

  - オリジナルで改ざんがないことが必要だから?

  - オープンソース以外のライセンスで公開すればいいのでは?

  - 準拠したアプリケーションサーバーを管理したいのでは? (1.2.4より)

- p.14 下から5行目 行末 ※印は

  - 正式には何とよむのだろう?

  - 英語圏ではこのような用途ではどんな記号を使っているのだろう?

    - アスタリスク(*)とか、ダガー(†)とか、ダブルダガー(‡)とかではないか。

- p.15 表1.2 EJB行Web Profile対応欄の、「(EJB Lite)」は何?

  → EJBの章を読むときに確認しよう。

- Tomcatは

  - Java EE準拠ではない。

    → Apache TomEEというJava EE 6準拠のアプリケーションサーバーもある。

  - Servlet/JSP参照実装だったが、今は違う。

  - 現在もServlet/JSPのVer.UPに追従している。Jettyは止まってる?


1.3 Java EEアプリケーション開発の基本
-------------------------------------

- p.18 図1.5

  - コンテナを表している枠は別サーバーの意味?

    → No。一つのプロセスで実現することも、別サーバーにわけることもできる。

  - CDIはコンテナなしでライブラリ的に使用することができる。


1.4 開発環境の準備
------------------

- 新しいVer.のJDK, JREをインストールするときに、古いVer.を削除されることがあるので、
  古いVer.を残す必要がある時は注意。

- p.26 図1.20の説明

  - 「ライセンス契約条件を読め」とは書いてないね。

- p.27 図1.21

  - NetBeans IDE用のJDKは、フォルダ名としてUpdate番号まで( ``_05`` まで)含んでいるので、
    あとからJDKをVer.UPしたらIDEが動かなくなる。下記の解決方法がある。

    - インストールフォルダ/etc/netbeans.conf内の設定変更

    - NetBeans起動時のコマンドラインオプションの変更

- p.28 図1.23 更新の確認は、インストール時ではなくNetBeans起動時に行われる。


1.5 サンプルアプリケーションの概要
----------------------------------

- p.31 図1.28 データベースは別途インストールが必要?

  → この本の通りにインストールすると、Java DBが使えるようになっている。

  - GlassFish、NetBeansのどちらに入っているかは不明。

  - GlassFishの起動でJava DBも起動される。

  - GlassFishを終了してもJava DBは動いたまま。

  PostgreSQL, MySQL, Oracle (OCI, Thin) のドライバはついている。

- p.35 図1.35 カテゴリにある、``FMW`` とは何? (本題とは関係ないけど)

  → Oracle Fusion Middlewareだろう。寺田さんが担当部署にいたらしい。


1.6 まとめ
----------


Chapter 2 プレゼンテーション層の開発 --- JSFの基本
==================================================


2.1 JSF概要
-----------

- p.41 図2.2 衍字

  入力値のチェックやなど → 入力値のチェックなど

- p.41 コラム内にある、アクションベースの開発とはどんなものだろう?


2.2 JSFの構成要素
-----------------

- p.42 コード内 ``<h:head>`` は、宣言部ではなくヘッダー部の間違い。

- フェースレットをHTML標準タグで書いて属性でJSFに必要な項目を書くこともでき、
  ブラウザでそのまま見ることができる。後の章で書かれている。

- p.33 下から6行目 コードの説明として「Accountクラスの」と書かれているが、EL式内
  ``account`` はクラス名ではなくエンティティ名。そのエンティティの型がAccount。
  (あとから出てくるAccountBean.javaを見ないとわからない。)

- p.49 6行目 ``Accountクラスに設定`` はクラスでなくオブジェクトだろう。この章では
  クラスとオブジェクトを区別せず、全て``クラス`` と言っているようだ。

- p.49 図2.4 マネージドビーンでパスワードは何故アカウント情報の枠に入っていない?

  → 画面で入力された値をそのまま登録するわけではなく、処理をして(ハッシュ化して)
  アカウント情報に格納するからではないか。

- p.49 コラム バッキングビーンは、JSFやCDIでライフサイクル管理されている/いないは
  関係ない。


2.3 JSFの画面遷移
-----------------

- p.52 2.3.2 3行目 脱字

  サーバー再アクセスして → サーバーに再アクセスして


2.4 JSFの内部処理
-----------------


2.5 JSFの基本設定
-----------------

- p.61 サーブレットのマッピング定義

  - URLパターンは、``/faces/*/`` が一般的とあるが、実運用アプリではサーバー技術が
    わかるようなパス名は使わないと思う。

    - ``.do`` は結構見るね。

  - ``knowledgebank`` はコンテキスト名で、通常warファイル名をコンテキスト名にしておく。


2.6 フェースレットタグライブラリ
--------------------------------

- p.61 表2.2 1行目の代表的なタグ二つが同じタグになっている(``<f:convertDateTime>``)。

- p.61 表2.3

  - 表ヘッダ「ネームスペース」についている``[10]``は不要。

    - 注釈[16]の内容からは、「表見出し」より「ネームスペース」についてた方がしっくりくる。

  - 実行時に「ネームスペース」にあるURLにアクセス可能である必要があるか?

    → 便宜の為に通常ここにスキーマがおかれていることが多いが、これはURIであって
    アクセス可能である必要はない。

- p.66 headやbodyはh:タグである意味はあるのか?

  - 内部のh:タグの存在チェックのため?

  - <html>内にh:タグ置けないから?

  - コンテナがコンポーネントツリーを作るため?

- p.68 下のコードの見出し 誤字

  スタイルシータタグ → スタイルシートタグ

  p.69 上部も同様の誤字

- p.70 中ほど HTMLだけではなくJavaScriptのエスケープはしてくれないのかなぁ?

- altなど、対応するHTMLタグに書くことができる属性は、h:タグで書いても大丈夫?

- p.76 中ほど

  - コンテキストルートからのパスを指定する場合とあるが、本文の説明には、
    outcome属性に書かれていない ``faces/`` が入っている。

    - コンテキストルートはknowledgebank/だから、コード例か本文の間違い?

    - 「コンテキストルートからのパスを指定する」という説明が間違い?

    - サンプルコードではこの本と同じようになっている。

.. note::
  p.77まで終了。次回はp.78から。


[ 戻る ]