| Interstage Studio プログラマーズガイド | 
| 目次
			索引    | 
| 第2部 Java編 | > 第4章 Enterprise JavaBeans (EJB)を開発する | > 4.5 留意事項 | 
Interstage EJBサービスでは、リモート環境のアプリケーションとの通信規約としてRMI over IIOPを使います。EJBとリモート環境のアプリケーションのプログラミングでは、Java RMIの書式にしたがった記述となります。一方、通信路には、CORBAのIIOPプロトコルを使います。JavaとCORBA(IDL)との機能差からの注意事項について説明します。
Homeインタフェース/Remoteインタフェースの各メソッドで、パラメタや復帰値として使うことができるデータ型は以下のいずれかでなければなりません。
void, boolean, char, byte, short, int, long, float, double
定義したすべてのメソッド(継承メソッドを含む)にjava.rmi.RemoteExceptionまたはjava.rmi.RemoteExceptionのスーパークラスを例外として定義してください。
実行時に、このinterfaceがjava.io.Serializableを実装したクラスを表すようにする必要があります。
継承するインタフェース間で同名のメソッドが存在してはいけません。
java.rmi.Remoteインタフェースを直接、間接に実装してはいけません。
java.io.Serializableインタフェースを直接、間接に継承したクラスだけ通信可能です。
java.lang.Error および、java.lang.RuntimeExceptionとそれらのサブクラス以外はすべて通信可能です。
実行時には、クライアントですべてjava.rmi.RemoteExceptionとして動作します。
上記(a〜d)の配列を定義できます。
JavaからIDLに変換する場合の変換規則のうち、名前が変換されるものを以下に示します。
IDLでは、メソッド名のオーバロード(同一のメソッド名でパラメタや戻り値などが異なるもの)や、メソッド名やフィールド名に大文字小文字だけ異なるものなどが認められません。そのため、メソッドのオーバロードや、大文字小文字だけ異なる場合などには、配備時に変名が行われます。また、変名後の名前に重複が生じる場合は、配備時にエラーとなることがあります。詳細については、"Interstage Application Server J2EEユーザーズガイド"を参照してください。
| 項 | Java | IDL | 
|---|---|---|
| 1 | IDLキーワード | 先頭に「_」を付加します。 | 
| 2 | 先頭が「_」 | 先頭に「J」を付加します。 | 
| 3 | 「$」やユニコード文字などのIDLで定義できない文字 | 「U」とUnicode値を表す4桁の16進数(大文字)で置換します。 | 
| 4 | 内部クラス | 外部クラス名と内部クラス名を「__」で連結します。 | 
| 5 | オーバロードされたメソッド | 以下の手順で変換します。 
 (例) | 
| 6 | 大文字/小文字だけ異なる識別子 | 以下の手順で変換します。 
 (例) 大文字/小文字の区別だけで識別されるパッケージ名、クラス名、インタフェース名はサポートしません。 | 
| 7 | メソッド名が他の識別子(定数、フィールド)の名前と重複した場合 | 定数、フィールドの名前の末尾に「_」を付加し、メソッド名は変換しません。 | 
| 8 | リモートインタフェースの以下の条件に当てはまるメソッド 1. get<name>メソッドとset<name>メソッドのペアがあり次の条件に当てはまる場合。 
 2. get<name>メソッドが次の条件に当てはまる場合。 
 3. is<name>メソッドとset<name>メソッドのペアがあり次の条件に当てはまる場合。 
 4. is<name>メソッドが次の条件に当てはまる場合。 
 | attribute 以下のように変換します。番号(1、2、...)は左欄の番号に対応します。 
 
 
 | 
| 9 | 配列 | 以下のようにorg.omg.CORBA.boxedRMIモジュールに展開します。 (例1) (例2) (例3) (例4) | 
| 10 | 例外 | exceptionとvaluetypeの両方に変換し、exceptionには対応するvaluetypeのフィールドを1つ定義します。 ・Exception 
 ・valuetype | 
| 11 | java.lang.Objectクラス | ::java::lang::_Object | 
| 目次
			索引    |