本-JavaEE7徹底入門

P403 JAX-RSで最低限必要なクラス

Applicationサブクラス 作成するリソースクラスをRESTful Webサービスとして公開するためのクラス RESTサービスクラス(リソースクラス) RESTful Webサービス本体を定義するためのクラス JAX-RSでは1つ1つのリソースの操作を定義するクラスをリソースクラスと…

P401 JAX-RSの主な機能

1.HTTPメソッド/URIパターンとリソースメソッドとのバインド機能 @GET, @POST, @PUT, @DELETE, @Path, etc... 2.メッセージボディのデータ形式指定機能 HTTPコンテンツネゴシエーション[HTTPリクエストに応じて適した形式のレスポンスを返却すること]を行う…

P401 マーシャル

JavaオブジェクトをXML形式やJSON形式のデータに変換すること。 逆にXMLやJSON形式のデータをJavaオブジェクトに変換することをアンマーシャルと呼ぶ。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加…

P261 タイマー is not バッチ

タイマーをバッチ機能の様に利用するのはやめておいた方がいい。長期のトランザクション保持は、エラーが発生した際の影響範囲が大きくなりすぎるためである。 そのため、JavaEEの機能でバッチ機能を実現する場合は、JBatchなどを利用する方向で考えるべきで…

P257 キューとトピック

キューは送信元と受信先が1:1の関係になるが、トピックはn:mの関係になる。 保管できるメッセージの型に違いはない。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田…

P241 セッションビーンの種類

-ステートレスセッションビー(@stateless) -ステートフルセッションビーン(@stateful) -シングルトン(@Singleton) -タイマー タイマーはEJBのメソッド単位で挙動を制御する。メソッドは、ステートレスもしくはシングルトンを選択できる。 Java EE 7徹底入門 …

P226 ディスポーザ

プロデューサメソッドとともに利用する。 @Disposesアノテーションを付与する事で、ディスポーザメソッドを定義できる。 プロデューサメソッドとディスポーザメソッドは同一オブジェクトを扱わなければならない。 (そのため、同じクラスにメソッドを定義する…

P223 プロデューサ

当機能を用いればインジェクションを動的にすることができる。例) [インジェクションされる側] @Inject private EntityManager em;[インジェクションするクラスを生成する側(プロデューサ)] public class EntityManagerProducer { private EntityManager em;…

P220 ステレオタイプ

@Stereotypeが定義されたアノテーションを利用する事で、 そのアノテーションに付与されている複数の属性をデフォルトの定義として利用できる様になる。 また、ステレオタイプによるアノテーション定義は、利用しているCDIビーン側で上書きする事もできる。J…

P210 CDI限定子を設計する際の名称について

限定子が限定子であることをはっきり区別できるようにしておく方がよい。 (説明はしてくれているが、自分の頭ではそれが以下の方法にしておくことでどう解決に結びつくのかぴんとこなかったので記載はしない) 具体的には、以下の方法で回避する方法を提案し…

P206 CDIの型解決方法

1.インジェクションポイントと対象インスタンスが1対1の場合(自動解決) 2.CDI限定子(@Qualifier)もしくはbeans.xml(@Alternative)で解決する方法Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築作者: 寺田佳央,猪瀬淳,加藤田益嗣,…

P204 CDI限定子

複数のインジェクション候補クラスが存在する場合に、クラスを特定するためのアノテーション 開発者が独自に定義するもの パッケージは独自定義でよい javax.inject.Qualifierアノテーションを利用するJava EE 7徹底入門 標準Javaフレームワークによる高信頼…

P176 フェーズリスナ

[フェーズID一覧] RESTORE_VIEW APPLY_REQUEST_VALUES PROCESS_VALIDATIONS UPDATE_MODEL_VALUES INVOKE_APPLICATION RENDER_RESPONSE ANY_PHASE・ID自体は、PhaseIdクラスに記述されている。 ・ANY_PHASEは全てのフェーズを表す。 [フェーズリスナー登録方…

P169 ブックマーカビリティタグ

[タグの種類] f:viewParam URLのクエリ文字列をマネージドビーンに設定するタグf:viewAction 画面を表示する前に処理を実行するタグ[特記事項] ・使用するには、f:metadataタグ内で利用しなければならない。 ・当タグを利用すると、初期描画時は通常1と6しか…

P135 パススルーアトリビュートとパススルーエレメント

パススルーアトリビュート・・・JSFからJSFに対応していない属性を出力するための仕組み パススルーエレメント・・・HTMLタグをそのままJSFのコンポーネントに変換させる仕組みどちらもJavaEE7(JSF2.2)の仕様なので、JavaEEサーバが対応していないと無視され…

P132 ui:insertタグ内部の記述

[テンプレート側] (中略) 上記の様なXHTMLがあった場合、テンプレートファイルにて置き換え対象とするのは、ui:insertタグ部分全体である。 では、その内部の記述は何のためにあるかというと、テンプレート部分が置き換えられなかった場合に利用する内容であ…

P112 カスタマイズバリデータ

@Constraint(validateBy = {hogeValidator.class}) ConstraintValidator<T, V> T:アノテーションの型 V:値の型 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二 出版社/</t,>…

P110 ビーンバリデーションのエラーメッセージ変更方法

1.アノテーションにmessage属性を付ける @NotNull(message="ユーザーIDは必須です" 2.プロパティファイルを利用する ValidationMessages.propertiesというファイル名でクラスパスのデフォルトパッケージに配置する。 Java EE 7徹底入門 標準Javaフレームワー…

P109 空文字の取扱い

JSFのデフォルトでは画面の入力が何もない場合は空文字としてコンポーネントに値が渡る。 web.xmlに下記の設定を加える事で、空文字の値をnullに変更する事ができる。 [web.xml] <context-param> <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITED_VALUES_AS_NULL </param-name> <param-value>true</param-value> </context-param> Java E…

P105 ビーンバリデーション

(ビーンバリデーションの記述例) @NotNull private String hoge; (ビーンバリデーションの利用例) <h:inputText id="hoge" value="#{account.hoge}" /> <h:message for="hoge"> [ビーンバリデーションの一覧] evernote側 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,</h:message></h:inputtext>…

p95 暗黙オブジェクト

[EL式の記述例] #{header['user-agent']} [暗黙オブジェクト一覧] evernote側 [論理演算子] && and || or ! not [空演算子] empty a aがnullまたは空文字の場合にtrueを返す [三項演算子] a ? b : c aがtrueの場合はb、falseの場合はcを返す [メソッドの呼び…

P90 h:dataTableタグ

h:dataTableタグもh:panelGridタグと同様にJSF1.2の流れが強い。また、簡単なテーブル表示であれば問題ないが、複雑なテーブルを作成する際に小回りが利かない。 そのため、通常のHTMLとui-repeatタグを組み合わせる方法を本書では記述している。 Java EE 7…

P53 画面のリダイレクト

outcome値の後に?faces-redirect=trueという文字列を付加すればリダイレクトを使用して画面遷移できる。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二 出版社/…

P51 outcome値

画面遷移で指定する文字列のこと 静的遷移と動的遷移と記述されているが、JSFにリテラル指定するか、マネージドビーンから動的に取得するかの差。 但し、戻り値がnullもしくはvoid型の場合は自画面の再表示という点は覚えておく必要がある。 Java EE 7徹底入…

P49 マネージドビーンとバッキングビーン

昔の名残で呼び名が残っているが、基本的に同じもの。 昔はマネージドビーンと呼ばれていたが、マネージドビーンがCDIでも代用出きるようになった頃からJSFで使用するマネージドビーンをバッキングビーンと呼ぶことが多くなった。 Java EE 7徹底入門 標準Jav…

P63 アプリケーションサーバー用の設定ファイル

glashfish-web.xmlやweblogic.xmlといったサーバー固有のファイルは、JavaEEではWEB-INFフォルダに配置する。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二 出…

P58 ポストバック

最初のアクセスの場合は、1と6しか処理しないが、再度同じ画面で処理する場合は1~6を処理する。再度その画面を処理することをポストバックと呼ぶ。 Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築 作者: 寺田佳央,猪瀬淳,加藤田…

P53 フラッシュスコープ

1画面遷移の間だけ値を保持する事ができるスコープ 多用すると処理の範囲やスコープが分かりにくくなるので、出来るだけ使わないこと。リダイレクト後のメッセージ表示などの用途位に留めること。 [ex.] facesContext.getExternalContext().getFlash().put("…