Cosminexus V9 アプリケーションサーバ SOAPアプリケーション開発の手引
リモートインタフェースのメソッドのパラメタに,INOUTパラメタを格納するためにHolderクラスを使用できます。リモートインタフェースのメソッドのパラメタ以外ではHolderクラスは使用できません。
Holderクラスの生成例,および使用できないHolderクラスの用途の例を示します。
package localhost;
public interface HolderTest extends java.rmi.Remote{
public void test( javax.xml.rpc.holders.StringHolder inout ) throws java.rmi.RemoteException;
}<wsdl:definitions targetNamespace="http://localhost" ... > ... <wsdl:message name="testRequest"> <wsdl:part name="in0" type="xsd:string"/> </wsdl:message> <wsdl:message name="testResponse"> <wsdl:part name="in0" type="xsd:string"/> </wsdl:message> <wsdl:portType name="HolderTest"> <wsdl:operation name="test" parameterOrder="in0"> <wsdl:input message="intf:testRequest" name="testRequest"/> <wsdl:output message="intf:testResponse" name="testResponse"/> </wsdl:operation> </wsdl:portType> ... </wsdl:definitions>
Holderクラスは,リモートインタフェースのメソッドのパラメタだけに使用できます。メソッドの戻り値,配列の要素,およびユーザ定義のデータ型クラスのフィールドでは使用できません。
次に示す例を含む,リモートインタフェースのメソッドのパラメタ以外の用途に使用しないでください。
package localhost;
public interface HolderTest extends java.rmi.Remote{
public javax.xml.rpc.holders.StringHolder test() throws java.rmi.RemoteException;
}
package localhost;
public interface HolderTest extends java.rmi.Remote{
public void test( javax.xml.rpc.holders.StringHolder[] inout ) throws java.rmi.RemoteException;
}
package localhost;
public interface HolderTest extends java.rmi.Remote{
public void test( localhost.UserData data ) throws java.rmi.RemoteException;
}
package localhost;
public class UserData implements java.io.Serializable {
public javax.xml.rpc.holders.StringHolder value;
}このような使い方をした場合,開発支援コマンドがKDCCC0012-Eのエラーメッセージを出力して終了したり※1,通信時にC4Fault例外※2,またはRemoteException例外※3が発生したりすることがあります。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.