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 }; : |
目次 索引 |