Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第3部 EJB編 | > 第15章 EJBアプリケーションの呼出し方法 | > 15.10 IDL変換規則に関する補足資料 |
以下ではJavaクラスからIDLに変換した際に、EJBアプリケーションの配備でエラーとなる例について説明します。
エラーが発生した場合は、前項の変換規則や、本項のエラー事例を参考にしながら、下記のポイントをチェックして対処してください。
適用した変換規則 |
3 |
エラーメッセージ例 |
D:\EJB\deployment\work\EB0919350001\pack001\_class002Remote_Stub.java:37: class pack001._class002Remote_Stub で宣言されたメソッド pack001._under meth001() は、interface pack001.class002Remote で宣言された同じシグニチャーのメソッドをオーバーライドできません。同じ型の戻り値を持たなければなりません。 |
Java記述例 |
public pack001.J_under meth001() throws java.rmi.RemoteException; |
IDLマッピング例 |
::pack001::J_under meth001(); |
エラー原因 |
クラス名“_under”が“J_under”に変換された結果、クラス名が重複しました。 |
適用した変換規則 |
4 |
エラーメッセージ例 |
FJJ2IDL0003S 変名後のメソッド名と同名のメソッドが定義されています。 InterfaceName = pack.test007Remote MethodName = foo__long |
Java記述例 |
public void foo() throws java.rmi.RemoteException; |
IDLマッピング例 |
エラーが発生したためIDLは出力されません。 |
エラー原因 |
メソッド“foo”がオーバーロードされたために変換され、メソッド“foo_long”と名前が重複しました。 |
適用した変換規則 |
4 |
エラーメッセージ例 |
<D4105S-02-002-1701> 展開処理中に異常が発生しました。 |
Java記述例 |
// pack.Exclass001 |
IDLマッピング例 |
//pack/Exclass001.idl |
エラー原因 |
継承元のメソッド“a$b”が“aU0024b”に変換されて、継承先のメソッド“aU0024”と名前が重複しました。 |
適用した変換規則 |
7 |
エラーメッセージ例 |
<D4105S-02-002-1701> 展開処理中に異常が発生しました。 |
Java記述例 |
//pack002.meth001Remote |
IDLマッピング例 |
//pack002/meth001Remote.idl |
エラー原因 |
継承元と継承先でそれぞれメソッド名が変換されて、メソッド名が重複しました。 |
適用した変換規則 |
7 |
エラーメッセージ例 |
<D4105S-02-002-1701> 展開処理中に異常が発生しました。 |
Java記述例 |
// pack002.Subclass1 |
IDLマッピング例 |
// pack002/Subclass1.idl |
エラー原因 |
継承元と継承先でそれぞれメソッド名が変換されて、メソッド名が重複しました。 |
適用した変換規則 |
7 |
エラーメッセージ例 |
FJJ2IDL0005S 変名後のフィールド名と同名のフィールドが定義されています。 ClassName = pack.Valueclass FieldName = jack_ |
Java記述例 |
public int jack_; |
IDLマッピング例 |
エラーが発生したためIDLは出力されません。 |
エラー原因 |
定義されたフィールド“jAcK”と“jack”が大文字/小文字だけ違うため、“jack”が“jack_”と変換された結果、他のフィールド“jack_”と名前が重複しました。 |
適用した変換規則 |
22 |
エラーメッセージ例 |
<D4105S-02-002-1701> 展開処理中に異常が発生しました。 |
Java記述例 |
// pack.ExIntf002 |
IDLマッピング例 |
// pack/ExIntf002.idl |
エラー原因 |
継承元のメソッドがattributeに変換され、継承先のメソッドと名前が重複しました。 |
適用した変換規則 |
22 |
エラーメッセージ例 |
FJJ2IDL0032S 同名のアトリビュートが定義されています。 InterfaceName = pack.test010Remote AttributeName = ATTR |
Java記述例 |
public int getATTR() throws java.rmi.RemoteException; |
IDLマッピング例 |
エラーが発生したためIDLは出力されません。 |
エラー原因 |
“getATTR”メソッドと“setATTR”メソッドがattributeに変換され、“isATTR”メソッドもattributeに変換された結果、attribute名が重複しました。 |
適用した変換規則 |
22 |
エラーメッセージ例 |
FJJ2IDL0033S アトリビュート名と同名のメソッドが定義されています。 InterfaceName = pack.test011Remote AttributeName = ATTR__ |
Java記述例 |
public long getATTR() throws java.rmi.RemoteException; |
IDLマッピング例 |
エラーが発生したためIDLは出力されません。 |
エラー原因 |
“getATTR”メソッドと“setATTR”メソッドがattributeに変換され、“ATTR”メソッドとattribute名が重複したため、語尾に“__”を付加した結果、“ATTR__”メソッドと名前が重複しました。 |
適用した変換規則 |
41 |
エラーメッセージ例 |
<D4105S-02-002-1701> 展開処理中に異常が発生しました。 |
Java記述例 |
public void meth001() throws TestExException, TestEx, java.rmi.RemoteException; |
IDLマッピング例 |
void meth001() raises( |
エラー原因 |
例外クラスの“TestExException”が“TestExEx”にマッピングされ、“TestEx”が“TestExEx”に変換された結果、例外名が重複しました。 |
適用した変換規則 |
41 |
エラーメッセージ例 |
D:\EJB\deployment\work\EB0946180001\pack001\_class004Remote_Stub.java:69: class pack001._class004Remote_Stub で宣言されたメソッド void meth002() は、interface pack001.class004Remote で宣言された同じシグニチャーのメソッドをオーバーライドできません。それらの throws 節には互換性がありません。 |
Java記述例 |
public void meth001() throws TestEx, java.rmi.RemoteException; |
IDLマッピング例 |
void meth001() raises( |
エラー原因 |
例外クラスの“TestExException”が“TestExEx”にマッピングされ、“TestEx”が“TestExEx”に変換された結果、例外名が重複しました。 |
目次 索引 |