Java EE 展開
Related information
はじめに
ここでは、Java アプリケーションサーバーでの TIBCO EBX® の展開仕様について詳しく説明します。サポートされるアプリケーションサーバーと固有の制限事項に関する具体的な情報については、サポートされる環境を参照してください。
安全な展開をナビゲートする方法については、セキュリティのベストプラクティスを参照してください。
ソフトウェアコンポーネント
EBX® は次のコンポーネントを使用します。
-
ライブラリ
ebx.jar -
デフォルトのユーザーおよびロールディレクトリ。EBX® リポジトリ内またはユーザー認証用のサードパーティシステム (LDAP、RDBMS) に統合。
以下も参照してください。:
埋め込みサードパーティライブラリ
EBX® の独立性と相互運用性を高めるために、独自のサードパーティライブラリが埋め込まれています。一部が変更され、競合回避されている場合も、これらは正式な Java API であるため、その他は変更しないでおく必要があります。
競合を引き起こす可能性があるのは次のとおりです。
-
Apache Geronimo JSON
-
Apache Log4j 2 API
-
ArcGIS API for JavaScript
-
Javax Activation
-
Javax Annotations
-
Javax JSON Binding
-
Javax SAAJ API
-
Javax WS RS
-
Javax XML Bind
-
LZ4 compression for Java
-
MicroProfile OpenAPI
-
Simple Logging Facade for Java (SLF4J) API
サードパーティライブラリのバージョンまたは詳細については、
TIB_ebx_6.1.2_license.pdf を参照してください。
これらのライブラリはすでに統合されているため、カスタム Web アプリケーションにこれらを新たに追加しないでください。そうでない場合は、リンケージエラーが発生する可能性があります。さらに、同じ理由で、
ebx.jar ライブラリ以外にこれらを展開しないでください。
必須のサードパーティライブラリ
EBX® には、いくつかのサードパーティ Java ライブラリが必要です。これらのライブラリは展開し、
ebx.jar のクラスローダーからアクセス可能にする必要があります。使用されるアプリケーションサーバーおよび Java ランタイム環境によっては、これらのライブラリがすでに存在する場合や、手動で追加する必要がある場合があります。
データ圧縮ライブラリ
ebx-lz4.jar という名前のライブラリは、 ebx.jar とは別に展開する必要があります。これには、いくつかの圧縮実装が含まれています (JNI 専用アーキテクチャライブラリと Java フォールバック)。以下の要件により、EBX® リポジトリの最適な圧縮および解凍パフォーマンスを確保できます。前提条件を検証できない場合、EBX® は Java フォールバックの安全または安全でないモードで機能しますが、パフォーマンスは低下します。 ebx-lz4.jar ライブラリのデフォルトの場所は、 ebx.jar の横にあります。
パフォーマンス要件
JNI アクセスは、次のオペレーティングシステムアーキテクチャで許可されています。
i386、 x86、 amd64、 x86_64、 aarch64 または ppc64le。この値を確認するには、 > の セクションで の値を確認してください。
ebx-lz4.jar の JNI アクセスを有効にするには、ライブラリをシステムクラスローダー (アプリケーションクラスローダーとも呼ばれる) でロードする必要があります。展開は、アプリケーションサーバー固有の手順に従って行えます。
データベースドライバー
EBX® リポジトリにはデータベースが必要です。一般に、必要なドライバーは、データソースが使用されている場合は、データソースとともに構成されます。メイン構成ファイルで定義されているデータベースに応じて、次のいずれかのドライバーが必要です。どのデータベースを使用する場合でも、JDBC クライアントドライバーのバージョンは、データベースサーバーのバージョン以上である必要があることに注意してください。
|
H2
|
バージョン 2.1.212 が検証されました。H2 は実稼働環境ではサポートされていないことに注意してください。
H2 リポジトリがバージョン 1.0 ドライバーで構築されている場合は、この v2 プロセスへの移行を適用する必要があります。
|
|
Oracle JDBC
|
Oracle データベース 21c は、最新のパッチセットアップデートで検証されています。
データベースサーバーのバージョンと Java ランタイム環境のバージョンに応じて、使用する必要のあるドライバーを決定します。JDK8 で
ojdbc8.jar 認定ライブラリをダウンロードします。
|
|
SQL Server JDBC
|
すべての修正パッチとメンテナンスパッチが適用された SQL Server 2012 SP4 以降が検証されています。
古いバージョンではいくつかの問題が発生しているため、最新の JDBC ドライバーを使用してください。
使用する Java ランタイム環境のバージョンに応じて、
mssql-jdbc-8.4.1.jre8.jar または mssql-jdbc-8.4.1.jre11.jar ライブラリを追加します。
|
|
PostgreSQL
|
PostgreSQL 10 以降が検証されています。
データベースサーバーおよび Java ランタイム環境用にリリースされた最新の JDBC ドライバーバージョン 4.2 を追加します。
|
以下も参照してください。:
SMTP とメール
使用される Web アプリケーションサーバーによっては、メール管理用のライブラリ
JavaMail API がすでに提供されています。そうでない場合は、手動で追加する必要があります。
EBX® には、この API のバージョン 1.5.6 と互換性のあるライブラリが必要です。構成の詳細については、SMTP とメールの有効化と構成を参照してください。
手動インストールを容易にするために、
javax.mail-1.5.6.jar が提供され、 ebx.software/lib/lib-mail ディレクトリに配置されています。
以下も参照してください。:
Secure Socket Layer (SSL)
SSL 機能のアクティベーション、構成、管理は、使用される Web アプリケーションサーバーと密接にリンクされています。したがって、適切な Web アプリケーションサーバーのドキュメントを参照する必要があります (例、Tomcat SSL/TLS Configuration How-To)。
以下も参照してください。:
Java メッセージサービス (JMS)
JMS を使用する場合は、バージョン 1.1 以降が必要です。
Java EE アプリケーションサーバーまたは Servlet/Java Server Pages (JSP) 実装のどちらが使用されているかに応じて、必要なライブラリは次のとおりです。
-
Java EE (Java Platform Enterprise Edition) に基づくアプリケーションサーバーの場合、必要な JMS プロバイダーライブラリがデフォルトで使用可能です。詳細については、https://www.oracle.com/java/technologies/java-ee-glance.html を参照してください。
-
Apache Tomcat などの JavaSE (Java Platform Standard Edition) を使用した Servlet/JavaServer Pages (JSP) 実装の場合、Apache ActiveMQ などの JMS プロバイダーライブラリの追加が必要な場合があります。詳細については、https://www.oracle.com/java/technologies/java-se-glance.html を参照してください。
注意:
EBX® では、サポートされる JMS モデルは Point-to-Point (PTP) のみです。PTP システムでは、メッセージのキューが許可されます。
以下も参照してください。:
Web アプリケーション
EBX® は、追加するカスタム EBX® モジュール Web アプリケーションがない場合に直接展開可能な、事前パッケージ化された EAR を提供します。カスタム Web アプリケーションを EBX® モジュールとして展開する場合は、ビルトイン Web アプリケーションと同一レベルでパッケージ化されたカスタムモジュールを含む EAR を再構築することをお勧めします。
注意:
/ パスコンテキストでの Web アプリケーションの展開はサポートされなくなりました。パスコンテキストは空にすることはできず、/ と等しくすることもできません。さらに、異なる深さのパスでの Web アプリケーションの展開は推奨されません。すべての Web アプリケーションパスのコンテキストは、パスの深さを同一に設定する必要があります。
詳細については、この章の末尾の EBX® EAR の再パッケージ化に関する注意事項を参照してください。
EBX® ビルトイン Web アプリケーション
EBX® には、次のビルトイン Web アプリケーションが含まれています。
| Web アプリケーション名 | 説明 | 必須 |
|---|---|---|
ebx |
起動時に初期化を処理する EBX® エントリポイント。詳細については、展開の詳細を参照してください。 | はい |
ebx-root-1.0 |
EBX® ルート Web アプリケーション。EBX® を使用するアプリケーションでは、ルート Web アプリケーションを展開する必要があります。 | はい |
ebx-ui |
EBX® ユーザーインターフェイス Web アプリケーション | はい |
ebx-manager |
EBX® ユーザーインターフェイス Web アプリケーション | はい |
ebx-dma |
EBX® データモデルアシスタント。ユーザーインターフェイスによるデータモデルの作成を支援します。 **注意:**データモデルアシスタントでは、 ebx-manager ユーザーインターフェイス Web アプリケーションを展開する必要があります。 |
はい |
ebx-dataservices |
EBX® データサービス Web アプリケーション。データサービスでは、SOAP 操作および Web サービス記述言語 WSDL 生成標準を使用するか、ビルトイン RESTful サービスを使用して、EBX® リポジトリとの外部インタラクションを許可します。 注意: EBX® Web サービスジェネレーターでは、 ebx-manager ユーザーインターフェイス Web アプリケーションを展開する必要があります。 |
はい |
カスタム Web アプリケーション
EBX® モジュールの要件に準拠するカスタム Web アプリケーションを展開することにより、EBX® の動作を拡張およびカスタマイズできます。
以下も参照してください。:
展開の詳細
はじめに
このセクションでは、「
ebx」Web アプリケーションの展開に使用可能なさまざまなオプションについて説明します。これらのオプションは、展開記述子 ( WEB-INF/web.xml) で使用可能で、メイン構成ファイルで定義されたプロパティによって補完されます。
注意:
JBoss アプリケーションサーバーの場合、未使用のリソースはすべて
WEB-INF/web.xml 展開記述子から削除する必要があります。
以下も参照してください。:
ユーザーインターフェイスと Web アクセス
Web アプリケーション「
ebx」( ebx.war としてパッケージ化) には、初期化を処理し、EBX® Web ツールの唯一のユーザーインターフェイスのエントリポイントとして機能する FrontServlet サーブレットが含まれています。
FrontServlet の展開記述子の構成
Webアプリケーション「
ebx」のファイル WEB-INF/web.xml で、次のエレメントを FrontServlet 用に構成する必要があります。
/web-app/servlet/load-on-startup
|
EBX® の起動時に FrontServlet が確実に初期化されるようにするには、web.xml 展開記述子でエレメント <load-on-startup>1</load-on-startup> を指定する必要があります。
|
/web-app/servlet-mapping/url-pattern
|
FrontServlet はパス「/」にマッピングする必要があります。
|
FrontServlet 用アプリケーションサーバーの構成
-
FrontServletには、ServletContextなど他のコンテキストへのアクセス許可が必要です。たとえば、Tomcat では、この構成は、構成ファイルserver.xmlの属性crossContextを使用して次のように実行されます。
<Context path="/ebx" docBase="(...)" crossContext="true"/> -
バージョン 6.1.2 以降非推奨:iFrame を使用する場合など、複数の EBX® Web コンポーネントを同じ HTML ページに表示する場合、一部のインターネットブラウザーの制限により Cookie の管理を無効にする必要がある場合があります。たとえば、Tomcat では、この構成は、構成ファイル
server.xmlの属性cookiesによって次のように指定されます。
<Context path="/ebx" docBase="(...)" cookies="false"/>
EBX® リポジトリのデータソース
注意:
EBX® のメイン構成でプロパティ
ebx.persistence.url が指定されている場合、以下の環境エントリは EBX® ランタイムにより無視されます。このオプションは、便宜上提供されているだけです。完全構成可能なデータソースを使用することを常にお勧めします。特に、接続プールのサイズは、同時ユーザーの数に応じて設定する必要があります。このプロパティの詳細については、EBX® リポジトリの構成を参照してください。
EBX® の JDBC データソースは、「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で次のように指定されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 |
|---|---|---|
jdbc/EBX_REPOSITORY |
Weblogic: EBX_REPOSITORY JBoss: java:/EBX_REPOSITORY |
EBX® リポジトリの JDBC データソース Java タイプ: javax.sql.DataSource |
以下も参照してください。:
メールセッション
注意:
EBX® のメイン構成で
ebx.mail.activate が true に設定されていない場合、またはプロパティ ebx.mail.smtp.host が指定されている場合は、以下の環境エントリは、EBX® ランタイムにより無視されます。これらのプロパティの詳細については、EBX® メイン構成プロパティの SMTP を参照してください。
SMTP とメールは、次のように「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で宣言されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 |
|---|---|---|
mail/EBX_MAIL_SESSION |
Weblogic: EBX_MAIL_SESSION JBoss: java:/EBX_MAIL_SESSION |
EBX® からメールを送信するために使用される Java メールセッション Java タイプ: javax.mail.Session |
JMS 接続ファクトリー
注意:
EBX® メイン構成がプロパティ
ebx.jms.activate で JMS を有効にしない場合、以下の環境エントリは EBX® ランタイムにより無視されます。このプロパティの詳細については、EBX® メイン構成プロパティの JMS を参照してください。
JMS 接続ファクトリーは、次のように「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で宣言されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 | 必須 |
|---|---|---|---|
jms/EBX_JMSConnectionFactory |
Weblogic: EBX_JMSConnectionFactory JBoss: java:/EBX_JMSConnectionFactory |
アプリケーションサーバーの運用環境で構成された JMS プロバイダーとの接続を作成するために EBX® によって使用される JMS 接続ファクトリー。 Java タイプ: javax.jms.ConnectionFactory |
はい |
注意:
JNDI 機能を備えた WildFly、JBoss、および WebLogic アプリケーションサーバーでの展開の場合、
EBX.ear または EBXForWebLogic.ear を更新して、必要なすべてのリソース名を JNDI 名にマッピングする必要があります。
データサービス用の JMS
デフォルトの HTTP の代わりに JMS を使用するようデータサービスを構成するには、JMS 接続ファクトリーと、「
ebx」Web アプリケーションの WEB-INF/web.xml 展開記述子で宣言された次のキューを構成する必要があります。これは、データサービス用の JMS を構成するための唯一の方法です。
ヘッダーフィールド
JMSReplyTo が定義されている場合、SOAP 要求を受信すると、オプションで SOAP 応答が返されます。この場合、フィールド JMSCorrelationID および JMSType は保持されます。
関連する EBX® の主な構成プロパティの詳細については、JMS を参照してください。
注意:
EBX® のメイン構成がプロパティ
ebx.jms.activate を介して JMS をアクティブ化しない場合、以下の環境エントリは EBX® ランタイムによって無視されます。このプロパティの詳細については、EBX® のメイン構成プロパティの JMS を参照してください。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 | 必須 |
|---|---|---|---|
jms/EBX_QueueIn |
Weblogic: EBX_QueueIn JBoss: java:/jms/EBX_QueueIn |
他のアプリケーションによって EBX® に送信される着信 SOAP 要求の JMS キュー。 Javaタイプ: javax.jms.Queue |
いいえ |
jms/EBX_QueueFailure |
Weblogic: EBX_QueueFailure JBoss: java:/jms/EBX_QueueFailure |
エラー時の JMS キュー。これには、エラー発生時の受信 SOAP 要求が含まれています。これにより、必要に応じてこれらのメッセージを再生できます。 Javaタイプ: javax.jms.Queue **注意:**このプロパティの読み取りには、メイン構成で、プロパティ ebx.jms.activate.queueFailure によりエラー時のキューも有効化する必要があります。これらのプロパティの詳細については、EBX® メイン構成プロパティの JMS を参照してください。 |
いいえ |
JAR ファイルスキャナー
Web アプリケーションサーバーの起動を高速化するには、JAR ファイルスキャナーの構成を変更して、少なくとも
ebx.jar および ebx-addons.jar ライブラリを除外する必要があります。
たとえば、Tomcat では、これは
catalina.properties ファイルの tomcat.util.scan.DefaultJarScanner.jarsToSkip プロパティで実行する必要があります。
インストールに関する注意事項
EBX® は、サーブレット 3.0 から 5.0 までをサポートする任意の Java EE または Jakarta EE 8 アプリケーションサーバーに展開できます。展開とインストールに関する次のドキュメントが利用可能です。
注意:
-
Java EE または Jakarta EE 8 アプリケーションサーバーでの EBX® インストールに関する注意事項は、各アプリケーションサーバーのネイティブドキュメントを置き換えるものではありません。
-
上記は一般的なインストールの推奨ではありません。インストールプロセスは、技術環境、アプリケーションの相互化、配信プロセス、組織の決定などのアーキテクチャ上の決定によって異なります。
-
これらの例では、追加の EBX® モジュールは展開されていません。カスタムモジュールまたはアドオンモジュールを展開するためのベストプラクティスは、他の EBX® モジュールと同じレベルの Web アプリケーションとしてモジュールを使用して EAR を再構築することです。Web アプリケーションは、Java™ 2 Platform Enterprise Edition 仕様 v1.4 で指定されているように、クラスパスの依存関係を宣言する必要があります。J2EE.8.2 のオプションのパッケージサポート(...)JAR フォーマットのファイル (例、JAR ファイル、WAR ファイル、RAR ファイル) では、参照 JAR ファイルのマニフェストファイルの Class-Path ヘッダーで参照される JAR ファイルに名前を付けることで、JAR ファイルを参照できます。参照される JAR ファイルの名前は、参照 JAR ファイルの URL に相対的な URL を使用して付けられます。マニフェストファイルは、JAR ファイルでは META-INF/MANIFEST.MF という名前です。マニフェストファイルの Class-Path エントリのフォーマットは次のとおりです。
Class-Path: list-of-jar-files-separated-by-spaces「工業化」プロセスでは、カスタム EBX® モジュール、EBX® Web アプリケーション、および必要なすべての共有ライブラリを使用して、EAR を自動的に構築するスクリプトの開発を強くお勧めします。 -
予期しない動作を回避するため、クラスローディングシステム内の
ebx.jarまたは他のライブラリの重複を回避するガイドラインに従ってください。 -
Oracle WebLogic サーバーに展開する場合は、モジュール構造のセクションを参照してください。