2011-06-27 8 views
2

Jerseyを使用していくつかのWebサービスを実装しているmuleアプリケーションを作成しています。私はファイルをアップロードしたいと思います。 2つのFormDataParamパラメータがコメントアウトされている場合、私は、次のスケルトンにファイルアップロード要求でMule/Jerseyを返す

@POST 
@Path("/getHtml") 
@Consumes("multipart/form-data") 
@Produces("text/plain") 
public String getSummaryHtml(
     @FormDataParam("payload") String junk, 
     @FormDataParam("x12file") InputStream file 
     ) { 
    LOG.info("called getSummaryHtml"); 

    return "got"; 
} 

を書いて、私は、サーバーへのカールと予想される応答を取得することができています。パラメータのコメントを外した状態で、次のカール(前に動作していたもの)が400エラーになります。

curl -v -X POST --form [email protected] --form payload=junk http://localhost:8080/jersey/X12ToSummaryHtml/getHtml/ 

* About to connect() to localhost port 8080 (#0) 
* Trying 127.0.0.1... connected 
* Connected to localhost (127.0.0.1) port 8080 (#0) 
> POST /jersey/X12ToSummaryHtml/getHtml/ HTTP/1.1 
> User-Agent: curl/7.21.3 (i386-redhat-linux-gnu) libcurl/7.21.3 NSS/3.12.10.0 zlib/1.2.5 libidn/1.19 libssh2/1.2.7 
> Host: localhost:8080 
> Accept: */* 
> Content-Length: 2706 
> Expect: 100-continue 
> Content-Type: multipart/form-data; boundary=----------------------------55b24ac88245 
> 
< HTTP/1.1 100 Continue 
< Content-Type: text/plain 
< Content-Length: 0 
< Connection: close 
< HTTP/1.1 400 Bad Request 
< Content-Type: multipart/form-data; boundary=----------------------------55b24ac88245 
< Date: Sat, 25 Jun 2011 01:29:10 MDT 
< Server: Mule Core/3.1.1 
< Expires: Sat, 25 Jun 2011 01:29:10 MDT 
< http.status: 400 
< MULE_ENCODING: UTF-8 
< Transfer-Encoding: chunked 
< Connection: close 
< 
* Closing connection #0 

このコードにファイルをPOSTして処理するには何が必要ですか?

+0

http://stackoverflow.com/questions/5772225/trying-to-upload-a-file-to-aで固定しました-jax-rs-jersey-server/5872112#5872112)は数週間前です。それが助けてくれることを願って。 –

+0

MuleがメッセージをJerseyに渡す方法が明らかに間違っています。私はMIMEParsingExceptionをスローしています。 org.jvnet.mimepull.MIMEParser.skipPreamble()行:313 –

+0

Jettyコンテナに同じJerseyコードをデプロイしても問題ありません。ミュールコードで何かが壊れています。 –

答えて

関連する問題