[Seasar-user:5563] Re: [S2Axis] org.w3c.dom.Documentを引数に持つサービスメソッド呼出でエラーとなる

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 12月 21日 (木) 11:00:18 JST


小林 (koichik) です.

Date:    Wed, 20 Dec 2006 16:06:57 +0900
From:    笹部 敦之 <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:5553] [S2Axis] org.w3c.dom.Documentを引数に持つサービスメソッド呼出でエラーとなる

> S2Axisでorg.w3c.dom.Documentを引数に持つサービスメソッド呼出で
> エラーとなってしまいます。

Axis には Document の Serializer がデフォルトで
組み込まれているのですが,Document オブジェクトの
実装クラスからは Serializer を見つけてくれないため,
明示的に TypeMapping を登録しないといけないようです.

クライアント側の dicon で以下のように TypeMapping を
登録してください.

  <component name="connector" class="org.seasar.remoting.axis.connector.AxisConnector">
    <property name="baseURL">
      "http://localhost:8080/s2axis-examples/services/"
    </property>
    <initMethod name="addTypeMapping">
      <arg>
        <component class="org.seasar.remoting.axis.TypeMappingDef">
          <property name="type">@[E-MAIL ADDRESS DELETED]</property>
          <property name="namespaceURI">"http://xml.apache.org/xml-soap"</property>
          <property name="localPart">"Document"</property>
          <property name="serializer">@[E-MAIL ADDRESS DELETED]</property>
          <property name="deserializer">@[E-MAIL ADDRESS DELETED]</property>
        </component>
      </arg>
    </initMethod>
  </component>

ただし,TypeMappingDef の type プロパティに設定しているクラスは
お使いの環境に合わせて変更してください.
上記のクラスは Java5 に含まれている Xerces を使っている場合です.
これは

>         Document doc = db.newDocument();

で取得した doc の実装クラスになります.


もしサーバ側から Document を返す場合は同じように
TypeMapping を登録する必要があります.
# 引数で受け取るだけなら不要です.
その場合は以下のように設定してください.

  <component name="Echo" class="org.seasar.remoting.axis.examples.ex01.EchoImpl">
    <meta name="axis-service">
      <component class="org.seasar.remoting.axis.ServiceDef">
        <initMethod name="addTypeMapping">
          <arg>
            <component class="org.seasar.remoting.axis.TypeMappingDef">
              <property name="type">@[E-MAIL ADDRESS DELETED]</property>
              <property name="namespaceURI">"http://xml.apache.org/xml-soap"</property>
              <property name="localPart">"Document"</property>
              <property name="serializer">@[E-MAIL ADDRESS DELETED]</property>
              <property name="deserializer">@[E-MAIL ADDRESS DELETED]</property>
            </component>
          </arg>
        </initMethod>
      </component>
    </meta>
  </component>


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内