TIBCO EBX® モジュールのパッケージ化

最終公開日 : Sep 16, 2026
EBX® モジュールは、XML スキーマドキュメント、Java クラス、静的リソースなどのさまざまなリソースをパッケージ化した標準の Jakarta EE Web アプリケーションです。
EBX® モジュールは Web アプリケーションであるため、クラス読み込みの分離、WAR または EAR パッケージ化、Web リソースの公開などの機能のメリットを享受できます。
Related information

モジュール構造

EBX® モジュールには次のファイルが含まれています。
/WEB-INF/ebx/module.xml
この必須ドキュメントは、モジュールの主なプロパティとサービスを定義します。モジュール宣言 を参照してください。
/WEB-INF/web.xml
これは標準の Jakarta EE 展開記述子です。アプリケーションサーバーの起動時に EBX® モジュールの登録を実行できます。モジュール登録 を参照してください。
/META-INF/MANIFEST.MF
オプション。存在する場合、EBX® は「実装タイトル」と「実装バージョン」の値を [管理] > [技術構成] > [モジュールとデータモデル] に報告します。
/www/
このオプションのディレクトリには、パブリック URL 経由でアクセスできるすべてのパッケージ化されたリソースが含まれます。パッケージ化されたリソース を参照してください。

モジュール宣言

モジュールは、ドキュメント /WEB-INF/ebx/module.xml を使用して宣言されます。以下はその例です。
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:ebx-schemas:module_2.4"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:ebx-schemas:module_2.4 https://schema.orchestranetworks.com/module_2.4.xsd">
    <name>moduleTest</name>
</module>
各プロパティに関するドキュメントについては、関連スキーマ を参照してください。主なプロパティは次のとおりです。
エレメント 説明 必須
name サーバーインスタンス内のモジュールの一意の識別子を定義します。モジュール名は通常、Web アプリケーションの名前 (ディレクトリの名前) に対応します。 はい
publicPath パブリック URL で Web アプリケーションを識別するモジュール名以外のパスを定義します。このパスは、絶対 URL を計算するときにモジュールの外部リソースの URL に追加されます。このフィールドが定義されていない場合、パブリック パスは上記で定義されたモジュールの 名前 になります。 いいえ
services レガシー API を使用してユーザーサービスを宣言します。レガシーユーザーサービスの 宣言と構成 を参照してください。バージョン 5.8.0 からは、新しいユーザーサービスを使用することを強くお勧めします。 いいえ
beans 再利用可能な Java Bean コンポーネントを宣言します。ワークフローパッケージ を参照してください。 いいえ
ajaxComponents Ajax コンポーネントを宣言します。Java API の モジュールでの Ajax コンポーネントの宣言 を参照してください。 いいえ

モジュール登録

EBX® によって識別されるためには、アプリケーションサーバーの起動時にモジュールを登録する必要があります。Web アプリケーションの場合、すべての EBX® モジュールは次の条件を満たす必要があります。
  • クラス ModuleRegistrationListener を拡張するアノテーション @WebListener を持つ Java クラスが含まれます。
    注意:
    @WebListener アノテーションを使用する場合は、Web アプリケーションのサーブレット 3.0 アノテーションスキャンをアクティブにするようにアプリケーションサーバーが構成されていることを確認してください。詳細については、JSR 315: JavaTM Servlet 3.0 仕様 を参照してください。
    または
  • クラス ModuleRegistrationServlet を拡張するサーブレットを含みます。
  • 展開記述子 /WEB-INF/web.xml でこのサーブレットの標準宣言を行います。
  • 展開記述子に次の標準エレメントを追加して、このサーブレットがサーバーの起動時に登録されるようにします - <load-on-startup>1</load-on-startup>
    追加の推奨事項と情報
  • ModuleRegistrationServlet のメソッド handleRepositoryStartup を使用すると、モジュールに関連付けられたロガーを設定したり、一般的な JavaScript や CSS リソースなどの追加の動作を定義したりできます。
  • ModuleRegistrationServlet を拡張する特定のクラスは、Web アプリケーション内に配置する必要があります (/WEB-INF/classes または /WEB-INF/libの下。このクラスは、モジュールに関連付けられたデータモデルで使用される Java クラスをロードするために、アプリケーションのクラスローダーへのフックとして内部的に使用されるため)。
  • アプリケーションサーバーの起動プロセスは非同期で、Web アプリケーション / EBX® モジュールは動的に検出されます。EBX® リポジトリの初期化はこのプロセスに依存しており、使用されているすべてのモジュールの登録を最大無制限の時間待機します。その結果、使用されているモジュールが何らかの理由で展開されていない場合は、EBX® メイン構成ファイルで宣言する必要があります。詳細については、プロパティ モジュールの展開解除宣言 を参照してください。
  • すべてのモジュールの登録と登録解除は、log.kernel カテゴリに記録されます。
  • モジュールのロード中に例外が発生した場合、その原因はアプリケーションサーバーログに書き込まれます。
  • サーブレットがサービスを停止すると、モジュールは登録解除され、データモデルと関連するデータセットは使用できなくなります。ホットデプロイメント/アンデプロイメントは サポートされません

展開記述子の例

以下は、Jakarta EE 展開記述子 (/WEB-INF/web.xml) の例です。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
      version="6.0">
    <servlet>
       <servlet-name>InitEbxServlet</servlet-name>
       <servlet-class>com.foo.RegisterServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
</web-app>

登録例

以下は ModuleRegistrationServlet の実装例です。
package com.foo;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import com.onwbp.base.repository.*;

public class RegisterServlet extends ModuleRegistrationServlet
{

    public void handleRepositoryStartup(ModuleContextOnRepositoryStartup aContext)
        throws OperationException
    {
        // Perform module-specific initializations here
        ...

        // Declare custom resources here
        aContext.addExternalStyleSheetResource(MyCompanyResources.COMMON_STYLESHEET_URL);
        aContext.addExternalJavaScriptResource(MyCompanyResources.COMMON_JAVASCRIPT_URL);

        aContext.addPackagedStyleSheetResource("myModule.css");
        aContext.addPackagedJavaScriptResource("myModule.js");

    }

    public void handleRepositoryShutdown()
    {
        // Release resources of the current module when the repository is shut down here
        ...
    }

        public void destroyBeforeUnregisterModule()
    {
        // Perform operations when this servlet is being taken out of service here
        ...
    }

}

パッケージ化されたリソース

パッケージ化されたリソースは、クライアントブラウザーから直接アクセスでき、osd:resource フィールドまたは Java API 経由で管理および指定できるファイルとドキュメントです。さまざまなタイプがあり、ローカライズすることもできます。
以下も参照してください。:

ディレクトリ構造

パッケージ化されたリソースは、次のディレクトリ構造の下に配置する必要があります。
  1. 最初のレベルでは、ディレクトリ /www/ がモジュール (Web アプリケーション) のルートに配置されている必要があります。
  2. 2 番目のレベルでは、ディレクトリはローカリゼーションを指定する必要があります。次のようになります。
    • common/ には、ロケールに依存しないため、またはデフォルトのローカリゼーションとして使用されるすべてのリソースが含まれている必要があります (EBX®では、デフォルトのローカリゼーションは en、つまり英語です)。
    • {lang}/ は、その下にあるリソースのローカリゼーションが必要な場合に使用します。{lang} は実際のロケールコードに置き換えられます。これは、EBX®でサポートされているロケールに対応している必要があります。詳細については、EBX® ローカリゼーションの構成 を参照してください。
  3. 3 番目のレベルでは、ディレクトリはリソースタイプを指定する必要があります。次のようになります。
    • JavaScript リソースの場合は jscripts/ です。
    • stylesheets/ はカスケードスタイルシート (CSS) リソース用です。
    • HTML リソースの場合は html/ です。
    • アイコン型のリソースの場合は icons/ です。
    • 画像型のリソースの場合は images/ です。

この例では、画像 logoWithText.jpg のみがローカライズされるリソースです。
/www
 ├── common
 │   ├── images
 │   │   ├── myCompanyLogo.jpg
 │   │   └── logoWithText.jpg
 │   ├── jscripts
 │   │   └── myCompanyCommon.js
 │   └── stylesheets
 │       └── myCompanyCommon.css
 ├── de
 │   └── images
 │       └── logoWithText.jpg
 └── fr
     └── images
         └── logoWithText.jpg