| Interstage Application Server SOAPサービス ユーザーズガイド |
目次
索引
![]()
|
| 第6章 CORBA/SOAPゲートウェイの実装 | > 6.4 EJBアプリケーションと連携する場合の留意事項 |
EJBサーバアプリケーションのリモートインタフェース定義に定義されているメソッドのパラメタは、定義されている順に"arg1,arg2,・・・"と変名されます。
したがって、送信パラメタの作成おいて指定するパラメタ名には、"arg1,arg2,・・・"と指定する必要があります。

| package pack1; import java.rmi.*; import javax.ejb.*; public class calcBean implements javax.ejb.SessionBean { : public int add(int a, int b) { : } : } |
Webサービス情報ファイルでは、以下のようなパラメタ名に変名されます。
|
リモートインタフェース上の定義 |
Webサービス情報上の定義 |
|---|---|
|
public int add |
int add |
送信パラメタの作成処理は、次のようになります。
// import文宣言
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Call;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.XMLType;
:
// Callオブジェクトの作成
Call call = service.createCall();
Integer arg1 = new Integer( 10 );
Integer arg2 = new Integer( 20 );
call.addParameter( "arg1", XMLType.XSD_INT, ParameterMode.IN );
call.addParameter( "arg2", XMLType.XSD_INT, ParameterMode.IN );
java.lang.Object[] _iparamsInt = new Object[] { arg1, arg2 };
: |
EJBサーバアプリケーションのリモートインタフェースにおいて、パラメタの異なる同一名のメソッドがある場合、パラメタ名の末尾が連番に変更され、同一名のメソッドのパラメタ名は以下のように変名されます。

以下のように同一名のメソッドを持つリモートインタフェースが定義されている場合
package pack1;
import java.rmi.*;
import javax.ejb.*;
public class calcBean implements javax.ejb.SessionBean {
private transient javax.ejb.SessionContext context;
:
public int add(int arg0, int arg1) {
:
}
:
public float add(float arg0, float arg1) {
:
}
:
} |
Webサービス情報ファイルでは、以下のようなパラメタ名に変名されます。
|
リモートインタフェース上の定義 |
Webサービス情報上の定義 |
|---|---|
|
public int add |
int add |
|
public float add |
float add |
この場合の送信パラメタの作成処理は、次のようになります。
// import文宣言
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Call;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.XMLType;
:
// Callオブジェクトの作成
Call callint = service.createCall();
Integer intArg1 = new Integer( 10 );
Integer intArg2 = new Integer( 20 );
callint.addParameter( "arg1", XMLType.XSD_INT, ParameterMode.IN );
callint.addParameter( "arg2", XMLType.XSD_INT, ParameterMode.IN );
callint.setReturnType(XMLType.XSD_INT);
java.lang.Object[] _iparamsInt = new Object[] { intArg1 , intArg2 };
// Callオブジェクトの作成
Call callfloat = service.createCall();
Float floatArg1 = new Float( 2.1 );
Float floatArg2 = new Float( 2.0 );
callfloat.addParameter( "arg3", XMLType.XSD_FLOAT, ParameterMode.IN );
callfloat.addParameter( "arg4", XMLType.XSD_FLOAT, ParameterMode.IN );
callfloat.setReturnType(XMLType.XSD_FLOAT);
java.lang.Object[] _iparamsFloat = new Object[] { floatArg1 , floatArg2 };
: |
目次
索引
![]()
|