Cloud Software Group, Inc. EBX®
ドキュメント>開発者ガイド>はじめに
ナビゲーションモードドキュメント>開発者ガイド>はじめに

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

EBX®モジュールは、標準のJava EE Webアプリケーションであり、XMLスキーマドキュメント、Javaクラス、静的リソースなどのさまざまなリソースをパッケージ化します。

EBX®モジュールはWebアプリケーションであるため、クラスローディングの分離、WARまたはEARパッケージング、Webリソースの公開などの機能の恩恵を受けます。

モジュール構造

EBX®モジュールには、次のファイルが含まれています。

/WEB-INF/ebx/module.xml

この必須ドキュメントは、モジュールの主なプロパティとサービスを定義します。 モジュール宣言を参照してください。

/WEB-INF/web.xml

これは、標準のJavaEEデプロイメント記述子です。アプリケーションサーバーの起動時にEBX®モジュールの登録を行うことができます。 モジュール登録を参照してください。

/META-INF/MANIFEST.MF

オプション。存在する場合、EBX®は「Implementation-Title」と「Implementation-Version」の値を管理>技術構成>モジュールとデータモデルに報告します。

/www/

このオプションのディレクトリには、パブリックURLを介してアクセスできるすべてのパッケージ化されたリソースが含まれています。 パッケージ化されたリソースを参照してください。

Oracle WebLogicサーバーに必要なファイル:

/WEB-INF/weblogic.xml

次のようなprefer-web-inf-classesポリシーをアクティブ化するWebLogicデプロイメント記述子ファイル。

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

詳細については、 weblogic.xmlデプロイメント記述子エレメントを参照してください。

モジュール宣言

モジュールは、ドキュメント/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 http://schema.orchestranetworks.com/module_2.4.xsd">
	<name>moduleTest</name>
</module>

各プロパティのドキュメントについては、関連スキーマを参照してください。主なプロパティは次のとおりです。

エレメント

説明

必須

name

サーバーインスタンス内のモジュールの一意の識別子を定義します。モジュール名は通常、Webアプリケーションの名前(そのディレクトリの名前)に対応します。

はい

publicPath

パブリックURLでWebアプリケーションを識別するモジュール名以外のパスを定義します。このパスは、絶対URLを計算するときに、モジュールの外部リソースのURLに追加されます。このフィールドが定義されていない場合、パブリックパスは上記で定義されたモジュールのnameです。

いいえ

services

レガシーAPIを使用してユーザーサービスを宣言します。レガシーユーザーサービスの宣言と構成を参照してください。バージョン5.8.0以降では、新しいユーザーサービスを使用することを強くお勧めします。

いいえ

beans

再利用可能なJavaBeanコンポーネントを宣言します。 ワークフローパッケージを参照してください。

いいえ

ajaxComponents

Ajaxコンポーネントを宣言します。 Java APIのモジュールでのAjaxコンポーネントの宣言を参照してください。

いいえ

モジュール登録

EBX®で識別できるようにするには、アプリケーションサーバーの起動時にモジュールを実行時に登録する必要があります。 Webアプリケーションの場合、すべてのEBX®モジュールは次のことを行う必要があります。

また、以下にも注意ください。

追加の推奨事項と情報:

デプロイメント記述子の例

次に、Java EEデプロイメント記述子(/WEB-INF/web.xml)の例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                          https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
      version="3.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 javax.servlet.*;
import javax.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/です。

    • カスケードスタイルシート(CSS)リソースの場合は、stylesheets/です。

    • 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
ドキュメント>開発者ガイド>はじめに