[Seasar-user:11958] Re: [S2Axis2]multipart/form のリクエストについて

Takanori Suzuki [E-MAIL ADDRESS DELETED]
2007年 12月 6日 (木) 23:21:11 JST


たかのりです。

6 Dec 2007 13:14:59 +0900 に 元場 羊二郎(Youjiro
Motoba)<[E-MAIL ADDRESS DELETED]> さんは書きました:
> お世話になっております。元場と申します。
>
> S2Axis2を使用してサービスを作成しているのですが、
> enctype="multipart/form-data"
> を指定したフォームデータが取得できないのですが、どなたかご
> 存知ないでしょうか?

[Seasar-user:11912] の関連だと思いますが、
以下のクラスは呼ばれていますでしょうか?

org.apache.axis2.builder.MultipartFormDataBuilder

Axis2のデフォルトでは、
enctype が multipart/form-data の場合は、
上記クラスが呼び出されます。

サービス内でリクエストを処理しているようですが、
MultipartFormDataBuilderが呼び出されていれば、
リクエストは受信できているはずです。


ただ、現在のMultipartFormDataBuilderにはバグがあるようで、
リクエストをパースする際にClassCastExceptionが発生するようです。

そのようになる場合は、axis2.xmlで、
MultipartFormDataBuilderを拡張した独自のクラスを指定する必要があります。

axis2.xmlで、以下の部分で指定してください。
 →axis2.xmlのパスは、web.xmlで指定

    <messageFormatters>
        <messageFormatter contentType="application/x-www-form-urlencoded"

class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
        <messageFormatter contentType="multipart/form-data"
                         class="★独自のクラスを指定★"/>
        <messageFormatter contentType="application/xml"

class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
    </messageFormatters>


恐らく、サービスの引数にPOJOのクラスは指定できないと思われます。
OMElementでご確認ください。


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