Hi,
The log presents an empty multipart message (the -- on the end signals
that and t is correct) and then i rechecked your form and there is an
issue, you need to use:
<form action="<url>/addl"
method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="submit" value="upload" />
</form>
I have attached a simple maven project that exercises forms using the
jersey-multipart module and JavaMail.
Paul.
On Aug 12, 2009, at 10:17 PM, Jonathan Locke wrote:
> thanks for the speedy response!
>
> output is below. it looks like the boundary is two characters
> different (the -- on the end). i'm using safari on a macbook pro,
> but also have the same problem with firefox.
>
> 1 * In-bound request received
> 1 > POST http://localhost:7979/services/rest/probeprocessor/csv/v1/
> add/
> 1 > Content-Length: 44
> 1 > Accept-Encoding: gzip, deflate
> 1 > Referer: http://localhost:7979/debug/home.0
> 1 > Connection: keep-alive
> 1 > Accept-Language: en-us
> 1 > Host: localhost:7979
> 1 > User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-
> us) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/
> 530.19
> 1 > Origin: http://localhost:7979
> 1 > Content-Type: multipart/form-data; boundary=----
> WebKitFormBoundary5Kzj3IivAxrpF7Qn
> 1 > Cookie: JSESSIONID=1w8232e2jko9l
> 1 > Accept: application/xml,application/xhtml+xml,text/
> html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
> 1 >
> ------WebKitFormBoundary5Kzj3IivAxrpF7Qn--
>
> ERROR - log - Nested in
> javax.servlet.ServletException:
> com.sun.jersey.api.container.ContainerException:
> javax.mail.MessagingException: Missing start boundary:
> com.sun.jersey.api.container.ContainerException:
> javax.mail.MessagingException: Missing start boundary
> at
> com
> .sun
> .jersey
> .server
> .impl
> .model
> .method
> .dispatch
> .MultipartFormDispatchProvider
> .processForm(MultipartFormDispatchProvider.java:91)
>
>
>
>
> On Wed, Aug 12, 2009 at 12:40 PM, Paul Sandoz <Paul.Sandoz_at_sun.com>
> wrote:
> Hi Jonathan,
>
> Your HTML looks fine, so i am not sure why it is failing. Perhaps
> you can enable server side logging and see if the HTTP request has a
> Content-Type header with a boundary parameter:
>
> https://jersey.dev.java.net/nonav/apidocs/1.0.3/jersey/com/sun/jersey/api/container/filter/LoggingFilter.html
>
>
> Note that the use of multpart/form-data with @FormParam has been
> deprecated due to semantic issues overloading for two different
> media types that operate on characters and bytes. I need to log a
> warning stating that it is deprecated.
>
> I recommend using the jersey-multipart module and use @FormDataParam:
>
> https://jersey.dev.java.net/nonav/apidocs/1.0.3/contribs/jersey-multipart/com/sun/jersey/multipart/FormDataParam.html
>
> For example:
>
> @POST
> @Path("add")
> @Consumes("multipart/form-data")
> public Response add(@FormDataParam("file") final InputStream
> input)
> {
>
> Or if you want the form multipart data directly use:
>
> https://jersey.dev.java.net/nonav/apidocs/1.0.3/contribs/jersey-multipart/com/sun/jersey/multipart/FormDataMultiPart.html
>
> For example:
>
> @POST
> @Path("add")
> @Consumes("multipart/form-data")
> public Response add(final FormDataMultipart parts)
> {
>
> See the dependencies for the jersey-multipart module:
>
> https://jersey.dev.java.net/source/browse/*checkout*/jersey/tags/jersey-1.0.3/jersey/dependencies.html
>
> Paul.
>
> On Aug 12, 2009, at 8:02 PM, Jonathan Locke wrote:
>
>>
>> i am using jersey 1.0.3 and currently getting an exception when i
>> try to handle multipart form data. i've tried several approaches,
>> but the preferable one was:
>>
>> @POST
>> @Path("add")
>> @Consumes("multipart/form-data")
>> public Response add(@FormParam("file") final InputStream input)
>> {
>>
>> however, i never get to the method due to this exception:
>>
>> com.sun.jersey.api.container.ContainerException:
>> javax.mail.MessagingException: Missing start boundary
>> at
>> com
>> .sun
>> .jersey
>> .server
>> .impl
>> .model
>> .method
>> .dispatch
>> .MultipartFormDispatchProvider
>> .processForm(MultipartFormDispatchProvider.java:91)
>> at
>> com
>> .sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider
>> $
>> FormParameterProvider.getInjectableValues(FormDispatchProvider.java:
>> 108)
>> * snip *
>> Caused by: javax.mail.MessagingException: Missing start boundary
>> at javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:713)
>> at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:383)
>>
>> the HTML form i'm using to post the data is just a regular file
>> upload form (i assume this is okay?):
>>
>> <form method="post" enctype="multipart/form-data" action="<url>/
>> add">
>> <input value="file" id="file" type="file">
>> <p></p>
>> <input type="submit" value="Upload">
>> </form>
>>
>>
>
>