Interstage Application Server SOAPサービス ユーザーズガイド |
目次 索引 |
第8章 サポートされるデータ型 | > 8.1 XMLとJavaのデータ型マッピング |
構造体型・Bean型・列挙型をDII方式のRPCクライアントアプリケーションで使用する場合、javax.xml.rpc.encoding.TypeMappingクラスのregisterメソッドで、
を指定して変換マッピングの対応づけを行います。
以下にシリアライザファクトリ、デシリアライザファクトリのクラスについて示します。
●パッケージ:com.fujitsu.interstage.soapx.encoding.ser
クラス名 |
コンストラクタ |
説明 |
---|---|---|
BeanSerializerFactory |
public BeanSerializerFactory |
ユーザ定義型のクラス"beanClass"を、ネームスペース付きの名前 "typeName"のXMLのデータ型に関連付ける構造体型/Bean型シリアライザファクトリを構築します。 |
BeanDeserializerFactory |
public BeanDeserializerFactory |
ネームスペース付きの名前"typeName"のXMLのデータ型を、ユーザ定義型のクラス"beanClass"に関連付ける構造体型/Bean型デシリアライザファクトリを構築します。 |
構造体型またはBean型のユーザ定義型を使用するには、上記のコンストラクタでインスタンスを構築し、javax.xml.rpc.encoding.TypeMappingクラスのregisterメソッドで構築したインスタンスを登録します。アプリケーションでは、シリアライザファクトリ・デシリアライザファクトリのメソッドを使用する必要はありません。
●パッケージ:com.fujitsu.interstage.soapx.encoding.ser
クラス名 |
コンストラクタ |
説明 |
---|---|---|
EnumSerializerFactory |
public EnumSerializerFactory |
ユーザ定義型のクラス"enumClass"を、ネームスペース付きの名前 "typeName"のXMLのデータ型に関連付ける列挙型シリアライザファクトリを構築します。 |
EnumDeserializerFactory |
public EnumDeserializerFactory |
ネームスペース付きの名前"typeName"のXMLのデータ型を、ユーザ定義型のクラス" enumClass"に関連付ける列挙型デシリアライザファクトリを構築します。 |
列挙型のユーザ定義型を使用するには、上記のコンストラクタでインスタンスを構築し、javax.xml.rpc.encoding.TypeMappingクラスのregisterメソッドで構築したインスタンスを登録します。アプリケーションでは、シリアライザファクトリ・デシリアライザファクトリのメソッドを使用する必要はありません。
以下に構造体の場合の例を示して説明します。
package fujitsu.sample; // パッケージ名 public class Human implements java.io.Serializable { : } |
このリモートインタフェース定義に定義されたJavaクラスのマッピングの対応づけは、以下のようになります。
// import文宣言 import javax.xml.rpc.Service; import javax.xml.rpc.ServiceFactory; import javax.xml.namespace.QName; import javax.xml.rpc.encoding.TypeMappingRegistry; import javax.xml.rpc.encoding.TypeMapping; : service = ServiceFactory.newInstance().createService(new QName("","")); TypeMappingRegistry tmr = service.getTypeMappingRegistry(); TypeMapping tm = tmr.createTypeMapping(); // 構造体 Humanのマッピング登録 QName _qname = new QName( "urn:Fujitsu-Soap-Service-Data", "fujitsu-sample-Human" ); tm.register( fujitsu.sample.Human.class, _qname, new com.fujitsu.interstage.soapx.encoding.ser.BeanSerializerFactory( fujitsu.sample.Human.class, _qname), new com.fujitsu.interstage.soapx.encoding.ser.BeanDeserializerFactory( fujitsu.sample.Human.class, _qname ) ); tmr.register( "http://schemas.xmlsoap.org/soap/encoding/", tm ); //SOAP1.1の場合 tmr.register( "http://www.w3.org/2002/06/soap-encoding", tm ); // SOAP1.2の場合 : |
目次 索引 |