[Seasar-user:17237] Re: [S2JDBC][S2JDBC-Gen]getResultListを配列型に格納する方法
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 4月 9日 (木) 18:00:20 JST
小林 (koichik) です.
Date: Thu, 09 Apr 2009 11:31:04 +0900
From: 山田 祐己 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17236] [S2JDBC][S2JDBC-Gen]getResultListを配列型に格納する方法
> その際に、現状課題となっているのが、List型で戻る
> getResultListメソッドです。
> このメソッドは、S2Axis経由であれば、何の問題の無いのですが、
> 「.netからはList型で受け取れないし、SOAP標準外では」、との
> 指摘を受けました。
>
> 確かに、.netでコレクションクラスをSOAPで受け取れないと
> 聞いた事が有るのですが、SOAP標準外か迄は、まだ勉強
> 不足で確認できて居ない状況です。
> ただ結論だけは、公開するSOAP仕様には、確実に扱える配列での
> I/Fを模索する方向で進めております。
Axis (おそらく Axis2 でも) では List は
SOAP の配列としてエンコーディングするので,
.NET との相互運用でも問題ないはずです.
例えば Axis の
org.apache.axis.encoding.DefaultSOAPEncodingTypeMappingImpl#registerSOAPTypes()
myRegister(Constants.SOAP_ARRAY12, java.util.Collection.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
myRegister(Constants.SOAP_ARRAY12, java.util.ArrayList.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
myRegister(Constants.SOAP_ARRAY12, Object[].class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory()
);
というように,ArrayList やその他の Collection も
配列と同じ SOAP1.2 の配列にマッピングされています.
なお,Map (Collection ではない) は使わない方が
いいようです.
> そこで、getResultListの結果を配列で受け取るメソッドがあると
> 有りがたいのですが有りますでしょうか。
ありません.
もし提供するとしても ArrayList#toArray(T[]) を
呼び出すしかないので,アプリ側でやっても同じです.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内