Cosminexus 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) 2006, 2007, Hitachi, Ltd.