users@jersey.java.net

[Jersey] Re: multipart in Jersey 1.11

From: Jakub Podlesak <jakub.podlesak_at_oracle.com>
Date: Tue, 06 Mar 2012 10:18:36 +0100

Hi Ronak,

if you upgrade via the Update Centre client, you should just leave
things as is.
The client will take care of the transitive dependencies.

Regarding the test case: I am more interested in the server side, as the
exception occurs there.
I do not need the whole application, just the resource method causing
issues.

If you provide me the TCPMon output, i think i can try to reproduce from it.

Thanks,

~Jakub


On 03/05/2012 09:34 PM, Ronak Patel wrote:
> Hi Jakub,
>
> Would you also know which version of JAXB does Jersey 1.11 depend on?
>
> Also, do I have to upgrade Metro to the latest version to get the
> latest Jersey to work on Glassfish 3.1.1?
>
> I saw that the Jersey upgrade also seems to upgrade/install a version
> of Metro...(I assume I should just leave that version?)
>
> Ronak
>
> ------------------------------------------------------------------------
> *From:* Jakub Podlesak <jakub.podlesak_at_oracle.com>
> *To:* users_at_jersey.java.net
> *Sent:* Monday, March 5, 2012 8:34 AM
> *Subject:* [Jersey] Re: multipart in Jersey 1.11
>
> Hi Ronak,
>
> by any chance, would you be able to provide a simple reproducible test
> case?
> I think i can fix this easily in the moxy support module, but would
> like to see
> if there is a need to fix something else in addition.
>
> Thanks,
>
> ~Jakub
>
> On 03/05/2012 01:25 PM, Ronak Patel wrote:
>> I also just tried just upgrading jersey to 1.11 and Metro to the
>> latest in Glassfish 3.1.1.
>> However, I get exceptions when uploading my app:
>>
>> Error occurred during deployment: Exception while loading the app :
>> java.lang.IllegalStateException: ContainerBase.addChild: start:
>> org.apache.catalina.LifecycleException: java.lang.VerifyError:
>> (class: com/snocell/advertising/controller/NaturalJAXBProvider,
>> method: <init> signature: ()V) Bad type in putfield/putstatic. Please
>> see server.log for more details.
>>
>> I am compiling with JAXB 2.2.5; which I see is deployed under the
>> Glassfish modules...
>>
>> ------------------------------------------------------------------------
>> *From:* Ronak Patel <ronak2121_at_yahoo.com> <mailto:ronak2121_at_yahoo.com>
>> *To:* Ronak Patel <ronak2121_at_yahoo.com> <mailto:ronak2121_at_yahoo.com>;
>> "users_at_jersey.java.net" <mailto:users_at_jersey.java.net>
>> <users_at_jersey.java.net> <mailto:users_at_jersey.java.net>
>> *Sent:* Sunday, March 4, 2012 6:08 PM
>> *Subject:* Re: [Jersey] multipart in Jersey 1.11
>>
>> Because of these issues, I'm going to proceed to downgrade back to
>> the working version of Jersey (1.9.1) + Glassfish (3.1.1).
>>
>> ------------------------------------------------------------------------
>> *From:* Ronak Patel <ronak2121_at_yahoo.com> <mailto:ronak2121_at_yahoo.com>
>> *To:* Ronak Patel <ronak2121_at_yahoo.com> <mailto:ronak2121_at_yahoo.com>;
>> "users_at_jersey.java.net" <mailto:users_at_jersey.java.net>
>> <users_at_jersey.java.net> <mailto:users_at_jersey.java.net>
>> *Sent:* Sunday, March 4, 2012 5:34 PM
>> *Subject:* Re: [Jersey] multipart in Jersey 1.11
>>
>> Through some fancy detective work (going through the Glassfish Source
>> Code), I was able to get Glassfish to acknowledge the Multipart
>> Message as a valid one.
>> It seems Glassfish is now sensitive to catch CRLF separators.
>>
>> However, I now see:
>>
>> java.lang.NullPointerException
>> at
>> com.sun.jersey.moxy.MoxyMessageBodyWorker.typeIsKnown(MoxyMessageBodyWorker.java:110)
>> at
>> com.sun.jersey.moxy.MoxyMessageBodyWorker.isReadable(MoxyMessageBodyWorker.java:133)
>> at
>> com.sun.jersey.core.spi.factory.MessageBodyFactory._getMessageBodyReader(MessageBodyFactory.java:345)
>> at
>> com.sun.jersey.core.spi.factory.MessageBodyFactory._getMessageBodyReader(MessageBodyFactory.java:315)
>> at
>> com.sun.jersey.core.spi.factory.MessageBodyFactory.getMessageBodyReader(MessageBodyFactory.java:298)
>> at
>> com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider$FormDataMultiPartParamInjectable.getValue(FormDataMultiPartDispatchProvider.java:297)
>> at
>> com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)
>> at
>> com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider$FormDataInjectableValuesProvider.getInjectableValues(FormDataMultiPartDispatchProvider.java:125)
>> at
>> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)
>> at
>> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:203)
>> at
>> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>> at
>> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
>> at
>> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
>> at
>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
>> at
>> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
>> at
>> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
>>
>> ------------------------------------------------------------------------
>> *From:* Ronak Patel <ronak2121_at_yahoo.com> <mailto:ronak2121_at_yahoo.com>
>> *To:* "users_at_jersey.java.net" <mailto:users_at_jersey.java.net>
>> <users_at_jersey.java.net> <mailto:users_at_jersey.java.net>
>> *Sent:* Saturday, March 3, 2012 7:45 AM
>> *Subject:* [Jersey] multipart in Jersey 1.11
>>
>> Hi All,
>>
>> I'm seeing an exception occurring in Jersey 1.11 when I POST this
>> specific Multipart request to the server.
>> This used to work just fine in Jersey 1.9.1.
>>
>> This is my request:
>>
>> POST /service/v2/posting/ HTTP/1.1
>> Host: testserver.dyndns.org:8080
>> User-Agent: CFNetwork/548.0.3 Darwin/11.2.0
>> Content-Length: 269
>> Accept: application/json
>> Content-Type: multipart/form-data;
>> boundary=Boundary_1_27742346_1325633997534
>> Accept-Encoding: gzip
>> MIME-Version: 1.0
>> Accept-Language: en-us
>> Connection: keep-alive
>>
>>
>> --Boundary_1_27742346_1325633997534
>> Content-Disposition: form-data; name="resortId"
>> Content-Type: text/plain
>>
>> 0
>> --Boundary_1_27742346_1325633997534
>> Content-Disposition: form-data; name="text"
>> Content-Type: text/plain
>>
>> yo
>> --Boundary_1_27742346_1325633997534--
>>
>> Glassfish throws a 500 and says:
>>
>> Caused by:
>> org.apache.catalina.fileupload.MultipartStream$MalformedStreamException:
>> Stream ended unexpectedly
>> at
>> org.apache.catalina.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:960)
>> at
>> org.apache.catalina.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:867)
>> at java.io.InputStream.read(InputStream.java:82)
>> at org.apache.catalina.fileupload.Streams.copy(Streams.java:137)
>> at org.apache.catalina.fileupload.Streams.copy(Streams.java:107)
>> at org.apache.catalina.fileupload.Multipart.initParts(Multipart.java:157)
>> at org.apache.catalina.fileupload.Multipart.init(Multipart.java:101)
>> ... 62 more
>>
>> What gives?
>>
>> This error is now blocking the launch of my software....
>>
>>
>>
>>
>>
>>
>>
>
>