[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 メーリングリストの案内