第1章 アプリケーション開発の開始
1.1. はじめに リンクのコピーリンクがクリップボードにコピーされました!
1.1.1. Red Hat JBoss Enterprise Application Platform 7 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Enterprise Application Platform 7 (JBoss EAP) は、オープンな標準に基いて構築され、Java Enterprise Edition 7 の仕様に準拠するミドルウェアプラットフォームです。
JBoss EAP には、必要な場合にだけサービスを有効にできるモジュール構造が含まれ、サービスの起動時間が短縮されます。
管理コンソールと管理コマンドラインインターフェース (CLI) により、XML 設定ファイルの編集が不要になり、タスクをスクリプト化および自動化する機能が追加されました。
JBoss EAP は、JBoss EAP インスタンスに対してスタンドアロンサーバーと管理対象ドメインの 2 つの操作モードを提供します。スタンドアロンサーバー操作モードでは、実行している JBoss EAP を 1 つのサーバーインスタンスとして表します。管理対象ドメイン操作モードでは、1 つの制御ポイントから複数の JBoss EAP インスタンスを管理できます。
また、JBoss EAP には、セキュアでスケーラブルな Java EE アプリケーションの迅速な開発を可能にする API と開発フレームワークが含まれます。
1.2. Java Enterprise Edition 7 について リンクのコピーリンクがクリップボードにコピーされました!
1.2.1. Java EE 7 プロファイルの概要 リンクのコピーリンクがクリップボードにコピーされました!
Java Enterprise Edition (Java EE) 7 には、アプリケーションの特定クラスに適した設定を表す API のサブセットであるプロファイルのサポートが含まれています。Java EE 7 仕様が定義する唯一のプロファイルが Web プロファイルです。製品には、フルプラットフォーム、Web プロファイル、または 1 つ以上のカスタムプロファイルを自由に組み合わせた実装を選択することができます。
JBoss EAP 7.1 は、Java Enterprise Edition 7 のフルプラットフォームおよび Web プロファイル仕様の認定実装です。
Java Enterprise Edition 7 の Web プロファイル
Web プロファイルは、Java Enterprise Edition 7 仕様で定義される唯一のプロファイルです。これには、Web アプリケーションの開発に便利な指定の API のサブセットが含まれます。Web プロファイルは以下の API をサポートします。
Java EE 7 Web プロファイルの要件:
- Java Platform、Enterprise Edition 7
Java Web テクノロジー:
- Servlet 3.1 (JSR 340)
- JSP 2.3
- Expression Language (EL) 3.0
- JavaServer Faces (JSF) 2.2 (JSR 344)
JSP 1.2 向け Java Standard Tag Library (JSTL)
注記JBoss EAP には既知のセキュリティーリスクが存在します。Java Standard Tag Library (JSTL) が信頼できない XML ドキュメントにおける外部エンティティー参照の処理を許可するため、ホストシステム上のリソースへアクセスし、任意コードが実行される可能性があります。
このリスクを回避するには、通常空の文字列を値として適切に設定されたシステムプロパティー
org.apache.taglibs.standard.xml.accessExternalEntity
を使用して JBoss EAP サーバーを実行する必要があります。これを行う方法は 2 つあります。システムプロパティーを設定してサーバーを再起動する。
org.apache.taglibs.standard.xml.accessExternalEntity
org.apache.taglibs.standard.xml.accessExternalEntity
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-Dorg.apache.taglibs.standard.xml.accessExternalEntity=""
を引数としてstandalone.sh
またはdomain.sh
スクリプトに渡す。
- 他言語のデバッグサポート 1.0 (JSR 45)
エンタープライズアプリケーションテクノロジー:
- Contexts and Dependency Injection (CDI) 1.1 (JSR 346)
- Dependency Injection for Java 1.0 (JSR 330)
- Enterprise JavaBeans 3.2 Lite (JSR 345)
- Java Persistence API 2.1 (JSR 338)
- Java Platform 1.1 向けの共通アノテーション (JSR 250)
- Java Transaction API (JTA) 1.2 (JSR 907)
- Bean Validation 1.1 (JSR 349)
Java EE 7 仕様によって定義される フルプラットフォーム 実装には追加の API が含まれます。
Java Enterprise Edition 7 のフルプラットフォーム
Java EE 7 仕様のフルプラットフォームには、Java EE 7 仕様に含まれるすべての API および仕様が含まれます。Java Enterprise Edition 7 の Web プロファイル でサポートされる API の他に、以下の API もサポートします。
Java EE 7 のフルプラットフォームには以下が含まれます。
- Batch 1.0
- JSON-P 1.0
- Concurrency 1.0
- WebSocket 1.1
- JMS 2.0
- JPA 2.1
- JCA 1.7
- JAX-RS 2.0
- JAX-WS 2.2
- Servlet 3.1
- JSF 2.2
- JSP 2.3
- EL 3.0
- CDI 1.1
- CDI エクステンション
- JTA 1.2
- Interceptors 1.2
- Common Annotations 1.1
- Managed Beans 1.0
- EJB 3.2
- Bean Validation 1.1
1.3. 開発環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP 7.1 では、JBoss Developer Studio 11.0 以上の使用が推奨されます。
JBoss Developer Studio をダウンロードし、インストールします。
手順については、JBoss Developer Studio『Installation Guide』の「Installing JBoss Developer Studio Stand-alone Using the Installer」を参照してください。
JBoss Developer Studio で JBoss EAP サーバーを設定します。
手順については、『Getting Started with JBoss Developer Studio Tools』の「Using Runtime Detection to Set Up JBoss EAP from within the IDE」を参照してください。
1.4. JBoss Developer Studio でのアノテーション処理の設定 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse では、アノテーション処理 (AP) はデフォルトでオフになっています。そのため、プロジェクトによって実装クラスが生成されると、java.lang.ExceptionInInitializerError
例外が発生した後に、プロジェクトのデプロイ時に CLASS_NAME (implementation not found)
エラーメッセージが表示される可能性があります。
この問題は次の方法の 1 つで解決できます。個別のプロジェクトのアノテーション処理を有効にするか、すべての JBoss Developer Studio プロジェクトのアノテーション処理をグローバルに有効 にして解決します。
個別のプロジェクトのアノテーション処理を有効化
特定のプロジェクトのアノテーション処理を有効にするには、値が jdt_apt
の m2e.apt.activation
プロパティーをプロジェクトの pom.xml
ファイルに追加します。
<properties> <m2e.apt.activation>jdt_apt</m2e.apt.activation> </properties>
<properties>
<m2e.apt.activation>jdt_apt</m2e.apt.activation>
</properties>
この方法の例は、JBoss EAP に同梱される logging-tools
および kitchensink-ml
クイックスタートの pom.xml
ファイルにあります。
JBoss Developer Studio でアノテーション処理をグローバルに有効化
-
Window
Preferences と選択します。 - Maven を展開し、Annotation Processing を選択します。
- Select Annotation Processing Mode で Automatically configure JDT APT (builds faster , but outcome may differ from Maven builds) を選択し、Apply and Close をクリックします。
1.5. デフォルトの Welcome Web アプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP には、デフォルトではポート 8080
のルートコンテキストで表示されるデフォルトの Welcome
アプリケーションが含まれます。
このデフォルトの Welcome
アプリケーションは、独自の Web アプリケーションで置き換えることができます。これは、以下の 2 つのいずれかの方法で設定できます。
Welcome コンテンツを無効にすることもできます。
welcome-content ファイルハンドラーの変更
新しいデプロイメントを参照する、既存の
welcome-content
ファイルハンドラーのパスを変更します。/subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=path,value="/path/to/content")
/subsystem=undertow/configuration=handler/file=welcome-content:write-attribute(name=path,value="/path/to/content")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記または、サーバーのルートにより使用される異なるファイルハンドラーを作成することもできます。
/subsystem=undertow/configuration=handler/file=NEW_FILE_HANDLER:add(path="/path/to/content") /subsystem=undertow/server=default-server/host=default-host/location=\/:write-attribute(name=handler,value=NEW_FILE_HANDLER)
/subsystem=undertow/configuration=handler/file=NEW_FILE_HANDLER:add(path="/path/to/content") /subsystem=undertow/server=default-server/host=default-host/location=\/:write-attribute(name=handler,value=NEW_FILE_HANDLER)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を反映するためにサーバーをリロードします。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
default-web-module の変更
デプロイされた Web アプリケーションをサーバーのルートにマップします。
/subsystem=undertow/server=default-server/host=default-host:write-attribute(name=default-web-module,value=hello.war)
/subsystem=undertow/server=default-server/host=default-host:write-attribute(name=default-web-module,value=hello.war)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を反映するためにサーバーをリロードします。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
デフォルトの Welcome Web アプリケーションの無効化
default-host
のlocation
エントリー (/
) を削除して welcome アプリケーションを無効にします。/subsystem=undertow/server=default-server/host=default-host/location=\/:remove
/subsystem=undertow/server=default-server/host=default-host/location=\/:remove
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を反映するためにサーバーをリロードします。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow