[Seasar-user:17739] [S2Axis2] 呼び出し引数について
松山 大樹
[E-MAIL ADDRESS DELETED]
2009年 6月 12日 (金) 17:30:14 JST
松山です。
S2axis2-0.5.0 + Axis2 1.3 で、次のようなメソッドを持つサービスを公開しています。
TestResultDto getTest(Integer[] aIDList1, Integer[] aIDList2, String[] aTextList);
このサービスを呼び出すとき、
------------------------------------------------------------------------
Integer[] idList1 = {1,2,3};
Integer[] idList2 = {10,20,30,40};
String[] textList = {"a","b","c","d","e"};
TestResultDto resultDto = testService.getTest(idList1, idList2, textList);
------------------------------------------------------------------------
と、全ての引数を与えると、正しい結果が返りますが、
------------------------------------------------------------------------
Integer[] idList1 = null;
Integer[] idList2 = {10,20,30,40};
String[] textList = {"a","b","c","d","e"};
TestResultDto resultDto = testService.getTest(idList1, idList2, textList);
------------------------------------------------------------------------
のように、第1引数か第2引数をnull で与えると、呼び出しに失敗します。
------------------------------------------------------------------------
Caused by: org.apache.axis2.AxisFault: For input string: "a"
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
------------------------------------------------------------------------
リクエストしているXML を見ると、前者の場合は、
------------------------------------------------------------------------
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<getTest xmlns="http://test.testService">
<item0 xmlns="">1</item0>
<item0 xmlns="">2</item0>
<item0 xmlns="">3</item0>
<item1 xmlns="">10</item1>
<item1 xmlns="">20</item1>
<item1 xmlns="">30</item1>
<item1 xmlns="">40</item1>
<item2 xmlns="">a</item2>
<item2 xmlns="">b</item2>
<item2 xmlns="">c</item2>
<item2 xmlns="">d</item2>
<item2 xmlns="">e</item2>
</getTest>
</soapenv:Body>
</soapenv:Envelope>
------------------------------------------------------------------------
ですが、後者の場合は、
------------------------------------------------------------------------
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<getTest xmlns="http://test.testService">
<item0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xsi:nil="true" />
<item0 xmlns="">10</item0>
<item0 xmlns="">20</item0>
<item0 xmlns="">30</item0>
<item0 xmlns="">40</item0>
<item1 xmlns="">a</item1>
<item1 xmlns="">b</item1>
<item1 xmlns="">c</item1>
<item1 xmlns="">d</item1>
<item1 xmlns="">e</item1>
</getTest>
</soapenv:Body>
</soapenv:Envelope>
------------------------------------------------------------------------
となっています。
これは、Axis2 の仕様でしょうか?
それとも、S2Axis2の問題でしょうか?
Seasar-user メーリングリストの案内