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 |
目次
索引
![]() ![]() |