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