Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


2.6.2 SessionBeanを利用したサービス部品の適用範囲

SessionBeanを利用したサービス部品の適用範囲を次に示します。

〈この項の構成〉

(1) 前提となる仕様

SessionBeanを利用したサービス部品は,EJB 2.0の仕様に従って作成されている必要があります。

(2) 利用できるサービス部品の配備先

SessionBeanを利用したサービス部品として利用できるのは,サービスプラットフォーム上に配備されているサービス部品です。

(3) SessionBeanの作成条件

SessionBeanを利用したサービス部品は,次の条件に従って作成されている必要があります。

引数・戻り値に指定できるクラス

SessionBeanを利用したサービス部品の引数・戻り値に指定するクラスは,次の条件を満たしている必要があります。

  • ユーザ定義クラスが基本型クラスで構成されていること。

  • 引数・戻り値に指定されるユーザ定義型のクラスが,privateなフィールドとそのフィールドに外部からアクセスするためのpublicなアクセスメソッド(setXX,getXX)を持っていること(JavaBeans形式)。

  • 公開するメソッドの引数・戻り値にinterfaceのユーザ定義型を指定していないこと。

  • 公開するメソッドの引数・戻り値にabstractクラスのユーザ定義型クラスを指定していないこと。

  • 公開するメソッドの引数・戻り値にjava.lang.Object以外のクラスを継承するユーザ定義型クラスを指定していないこと。

  • 公開するメソッドの引数・戻り値に,異なるパッケージのユーザ定義型クラスを指定していないこと。

  • 次の表に示すJavaデータ型のうち,利用できるJavaデータ型だけを利用していること。

    表2‒13 Javaデータ型の利用可否

    Javaでのデータ型

    メソッドの引数・戻り値としての利用の可否

    直接使用する場合

    配列として使用する場合

    ユーザ定義データ型クラスのメンバ変数として使用する場合

    boolean

    javax.xml.rpc.holders.BooleanHolder

    ×

    ×

    byte

    javax.xml.rpc.holders.ByteHolder

    ×

    ×

    byte[]

    javax.xml.rpc.holders.ByteArrayHolder

    ×

    ×

    double

    javax.xml.rpc.holders.DoubleHolder

    ×

    ×

    float

    javax.xml.rpc.holders.FloatHolder

    ×

    ×

    int

    javax.xml.rpc.holders.IntHolder

    ×

    ×

    long

    javax.xml.rpc.holders.LongHolder

    ×

    ×

    short

    javax.xml.rpc.holders.ShortHolder

    ×

    ×

    java.lang.Byte

    javax.xml.rpc.holders.ByteWrapperHolder

    ×

    ×

    java.lang.Byte[]

    java.lang.Double

    javax.xml.rpc.holders.DoubleWrapperHolder

    ×

    ×

    java.lang.Float

    javax.xml.rpc.holders.FloatWrapperHolder

    ×

    ×

    java.lang.Integer

    javax.xml.rpc.holders.IntegerWrapperHolder

    ×

    ×

    java.lang.Long

    javax.xml.rpc.holders.LongWrapperHolder

    ×

    ×

    java.lang.Object

    ×

    ×

    ×

    javax.xml.rpc.holders.ObjectHolder

    ×

    ×

    ×

    java.lang.Object[]

    ×

    ×

    ×

    java.lang.Short

    javax.xml.rpc.holders.ShortWrapperHolder

    ×

    ×

    java.lang.String

    javax.xml.rpc.holders.StringHolder

    ×

    ×

    java.math.BigDecimal

    javax.xml.rpc.holders.BigDecimalHolder

    ×

    ×

    java.math.BigInteger

    javax.xml.rpc.holders.BigIntegerHolder

    ×

    ×

    java.util.Date

    javax.xml.namespace.QName

    javax.xml.rpc.holders.QNameHolder

    ×

    ×

    java.lang.Boolean

    javax.xml.rpc.holders.BooleanWrapperHolder

    ×

    ×

    java.util.Calendar

    javax.xml.rpc.holders.CalendarHolder

    ×

    ×

    (凡例)

    ○:利用できます。

    ×:利用できません。

メソッドのオーバーロード

SessionBeanを利用したサービス部品では,同じ名称のメソッドは指定できません。

トランザクション

SessionBeanのトランザクション管理種別(transaction-type)やメソッドに割り当てるトランザクション属性(trans-attribute)は,HCSCサーバからのトランザクションを引き継がないよう設定します。SessionBeanを利用したサービス部品には,トランザクションを引き継げません。

サービス部品でのトランザクション属性の指定の可否を次の表に示します。

表2‒14 サービス部品でのトランザクション属性の指定可否

サービス部品のトランザクションモード

トランザクション属性

指定の可否

BMT

CMT

Required

×

RequiresNew

Supports

×

NotSupported

Mandatory

×

Never

×

(凡例)

○:利用できます(EJBの仕様どおりに動作します)。

×:利用できません。

−:該当しません。

メソッドの例外

メソッドのthrows節に記載できる例外は,java.rmi.RemoteException,およびjava.lang.RuntimeExceptionの継承クラスだけです。

SessionBeanの種別

SessionBeanのサービス部品は,Stateless Session Beanとして作成されている必要があります。

サービスプラットフォームの実行環境では,EJBサービスに対する実行要求ごとに接続(create)と切断(remove)を発行します。そのため,Stateful Session Beanを使用して内部的な状態を保持するようなサービス部品は利用できません。

(4) スキーマの形式

SessionBeanを利用したサービス部品で利用するスキーマは,一定の条件を満たしている必要があります。スキーマの条件の詳細については,「2.6.5 XMLスキーマの適用範囲」を参照してください。