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して処理するには何が必要ですか?
http://stackoverflow.com/questions/5772225/trying-to-upload-a-file-to-aで固定しました-jax-rs-jersey-server/5872112#5872112)は数週間前です。それが助けてくれることを願って。 –
MuleがメッセージをJerseyに渡す方法が明らかに間違っています。私はMIMEParsingExceptionをスローしています。 org.jvnet.mimepull.MIMEParser.skipPreamble()行:313 –
Jettyコンテナに同じJerseyコードをデプロイしても問題ありません。ミュールコードで何かが壊れています。 –