users@jersey.java.net

Re: [Jersey] RE: MULTIPART_FORM_DATA and error 415

From: Suresh Kumar <yesbkay_at_yahoo.com>
Date: Mon, 22 Mar 2010 17:21:32 -0700 (PDT)

Paul:
Is there any sample project with FormDataMultiPart/MULTIPART_FORM_DATA support that successfully deploys and runs in Glassfish 2.1.1?
I tried deploying the "fileupload" sample app and deployment failed. I got an exception:
WebModule[/fileupload-1.0-SNAPSHOT]StandardWrapper.Throwablejava.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getFromStringStringMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;        at com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$TypeFromString.getStringReader(StringReaderProviders.java:112)        at com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderFactory.getStringReader(StringReaderFactory.java:62)        at com.sun.jersey.server.impl.model.parameter.multivalued.MultivaluedParameterExtractorFactory.process(MultivaluedParameterExtractorFactory.java:136)        at com.sun.jersey.server.impl.model.parameter.multivalued.MultivaluedParameterExtractorFactory.get(MultivaluedParameterExtractorFactory.java:75)        at
 com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.<init>(MultipartFormDispatchProvider.java:166)        at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider.getInjectables(MultipartFormDispatchProvider.java:276)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.processParameters(FormDispatchProvider.java:128)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.getInjectableValuesProvider(FormDispatchProvider.java:80)        at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider.create(AbstractResourceMethodDispatchProvider.java:67)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.create(FormDispatchProvider.java:75)        at
 com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider.create(MultipartFormDispatchProvider.java:108)        at com.sun.jersey.server.impl.application.ResourceMethodDispatcherFactory.getDispatcher(ResourceMethodDispatcherFactory.java:72)        at com.sun.jersey.server.impl.model.method.ResourceHttpMethod.<init>(ResourceHttpMethod.java:78)        at com.sun.jersey.server.impl.model.method.ResourceHttpMethod.<init>(ResourceHttpMethod.java:69)        at com.sun.jersey.server.impl.model.ResourceClass.processSubResourceMethods(ResourceClass.java:258)        at com.sun.jersey.server.impl.model.ResourceClass.<init>(ResourceClass.java:128)        at com.sun.jersey.server.impl.application.WebApplicationImpl.newResourceClass(WebApplicationImpl.java:379)        at com.sun.jersey.server.impl.application.WebApplicationImpl.getResourceClass(WebApplicationImpl.java:352)        at
 com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:842)        at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:625)        at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:414)        at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:377)        at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:242)        at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:449)        at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:169)        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:281)        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:442)        at
 javax.servlet.GenericServlet.init(GenericServlet.java:270)        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1100)        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1023)        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4969)        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5376)        at com.sun.enterprise.web.WebModule.start(WebModule.java:345)        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:986)        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:970)        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1649)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1254)        at
 com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)        at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1005)        at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:992)        at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)        at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)        at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)        at
 com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231)        at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)        at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:609)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:653)        at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)        at
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:390)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:373)        at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)        at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)        at $Proxy1.invoke(Unknown Source)        at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)        at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:170)        at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication(DeploymentClientUtils.java:159)        at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:538)        at java.lang.Thread.run(Thread.java:619)WebModule[/fileupload-1.0-SNAPSHOT]PWC1396: Servlet /fileupload-1.0-SNAPSHOT threw load() exceptionjava.lang.NoSuchMethodError:
 com.sun.jersey.core.reflection.ReflectionHelper.getFromStringStringMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;        at com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$TypeFromString.getStringReader(StringReaderProviders.java:112)        at com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderFactory.getStringReader(StringReaderFactory.java:62)        at com.sun.jersey.server.impl.model.parameter.multivalued.MultivaluedParameterExtractorFactory.process(MultivaluedParameterExtractorFactory.java:136)        at com.sun.jersey.server.impl.model.parameter.multivalued.MultivaluedParameterExtractorFactory.get(MultivaluedParameterExtractorFactory.java:75)        at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.<init>(MultipartFormDispatchProvider.java:166)        at
 com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider.getInjectables(MultipartFormDispatchProvider.java:276)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.processParameters(FormDispatchProvider.java:128)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.getInjectableValuesProvider(FormDispatchProvider.java:80)        at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider.create(AbstractResourceMethodDispatchProvider.java:67)        at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider.create(FormDispatchProvider.java:75)        at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider.create(MultipartFormDispatchProvider.java:108)        at
 com.sun.jersey.server.impl.application.ResourceMethodDispatcherFactory.getDispatcher(ResourceMethodDispatcherFactory.java:72)        at com.sun.jersey.server.impl.model.method.ResourceHttpMethod.<init>(ResourceHttpMethod.java:78)        at com.sun.jersey.server.impl.model.method.ResourceHttpMethod.<init>(ResourceHttpMethod.java:69)        at com.sun.jersey.server.impl.model.ResourceClass.processSubResourceMethods(ResourceClass.java:258)        at com.sun.jersey.server.impl.model.ResourceClass.<init>(ResourceClass.java:128)        at com.sun.jersey.server.impl.application.WebApplicationImpl.newResourceClass(WebApplicationImpl.java:379)        at com.sun.jersey.server.impl.application.WebApplicationImpl.getResourceClass(WebApplicationImpl.java:352)        at com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:842)        at
 com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:625)        at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:414)        at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:377)        at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:242)        at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:449)        at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:169)        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:281)        at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:442)        at javax.servlet.GenericServlet.init(GenericServlet.java:270)        at
 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1100)        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1023)        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4969)        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5376)        at com.sun.enterprise.web.WebModule.start(WebModule.java:345)        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:986)        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:970)        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1649)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1254)        at
 com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)        at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1005)        at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:992)        at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)        at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)        at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)        at
 com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231)        at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)        at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:609)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:653)        at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)        at
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:390)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:373)        at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)        at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)        at $Proxy1.invoke(Unknown Source)        at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)        at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:170)        at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication(DeploymentClientUtils.java:159)        at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:538)        at java.lang.Thread.run(Thread.java:619)ContainerBase.addChild: start: LifecycleException:  java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getFromStringStringMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;  
      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4979)        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5376)        at com.sun.enterprise.web.WebModule.start(WebModule.java:345)        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:986)        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:970)        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1649)        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1254)        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)        at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)        at
 com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1005)        at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:992)        at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)        at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)        at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)        at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231)        at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)        at
 com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:609)        at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:653)        at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at
 java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:390)        at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:373)        at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)        at $Proxy1.invoke(Unknown Source)        at
 com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)        at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:170)        at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication(DeploymentClientUtils.java:159)        at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:538)        at java.lang.Thread.run(Thread.java:619)classLoader = WebappClassLoader  delegate: true  repositories:
--- On Mon, 3/22/10, Suresh Kumar <yesbkay_at_yahoo.com> wrote:

From: Suresh Kumar <yesbkay_at_yahoo.com>
Subject: Re: [Jersey] RE: MULTIPART_FORM_DATA and error 415
To: users_at_jersey.dev.java.net
Date: Monday, March 22, 2010, 4:04 PM

I forgot to mention, by setting <class-loader delegate="false"/>, I was unable to deploy the war.
I am extending an existing web service and have little room to maneuver.
Thanks,Suresh

--- On Mon, 3/22/10, Suresh Kumar <yesbkay_at_yahoo.com> wrote:

From: Suresh Kumar <yesbkay_at_yahoo.com>
Subject: [Jersey] RE: MULTIPART_FORM_DATA and error 415
To: users_at_jersey.dev.java.net
Date: Monday, March 22, 2010, 2:41 PM

Paul:Thanks for your mail. I did not resolve the previous issue,but I moved on to use "FormDataMultiPart" instead of Form.Here is the relevant portion of the pom.xml <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-multipart</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> </dependency> My class loader delegate is set to true :
<class-loader delegate="true"/>
The problem still persists.
Suresh

Hi Suresh, I presume you resolved your issue you sent in a previous email? GF v2.1.1 comes pre-installed with Jersey 1.0.3.1 and this causes a conflict if a later version of Jersey is included in the war. So one needs to either set class loader delegation to false or upgrade using the update center. Have you included the jersey multipart dependency? Note that Jersey 1.1.4 installed on GFv2.1.1 via the update center does not come with jersey-multipart support so you need to include that yourself in the war. Paul. On Mar 22, 2010, at 6:51 AM, Suresh Kumar wrote: > This is my environment: > > Jersey: 1.1.4 > Glassfish: V2.1.1 > JDK : 1.0.6_18 > > I am getting a "A message body reader for Java type, class > com.sun.jersey.multipart.FormDataMultiPart, and MIME media type, > multipart/form-data;boundary=Boundary_1_2943240_1269235622354, was > not found" message and a > 415. > > Should I implement a reader? > > Any pointers would be really appreciated. I have attached the client > code, server code and Jersey output. > > Thanks, > Suresh > > > Client Code: > > private static void postImageAgain() throws Exception { > String url = "http://localhost:8080/image"; > WebResource webResource = client.resource(url); > File file = new File("src/main/resources/rest/collapse.gif"); > InputStream inputStream = new FileInputStream(file); > FormDataMultiPart fdmp = new FormDataMultiPart(); > FormDataBodyPart fdp = new FormDataBodyPart("media", file, > MediaType.MULTIPART_FORM_DATA_TYPE); > fdmp.bodyPart(fdp); > > ClientResponse response = > > webResource > .type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, > fdmp); > System.out.println("POST New Campaign Response Status : " + > response.getStatus()); > System.out.println("POST New Campaign Response Content > Type : " + response.getHeaders().get("Content-Type")); > String entity = response.getEntity(String.class); > System.out.println("POST New Campaign Entity : " + entity); > } > > Server Code: > > @POST > @Path("/campaign") > @Consumes(MediaType.MULTIPART_FORM_DATA) > @Produces("application/json") > public Response createCampaign(FormDataMultiPart formData) > throws IOException { > FormDataBodyPart imageFormData = formData.getField("media"); > InputStream image = > imageFormData.getValueAs(InputStream.class); > FormDataContentDisposition imageFdCD = > formData > .getField("media").getValueAs(FormDataContentDisposition.class); > ByteArrayOutputStream baos = new ByteArrayOutputStream(); > int read = 0; > byte[] buf = new byte[4096]; > while ((read = image.read(buf)) != -1) { > baos.write(buf, 0, read); > } > String s = new String(baos.toByteArray()); > System.out.println("form-data file name: " + > imageFdCD.getFileName()); > System.out.println("form-data file contents as string: " + s); > ResponseBuilder builder = Response.status(Status.OK); > builder.type(MediaType.APPLICATION_JSON); > builder.entity("this is great!"); > return builder.build(); > > Jersey Log: > > 7 > * > In-bound request received > 7 > > > POST > http://localhost:8080/force-rest-1.0/portal/campaign > 7 > > > content-length > : > 249 > 7 > > > connection > : > keep-alive > 7 > > > host > : > localhost:8080 > 7 > > > user-agent > : > Java/1.6.0_18 > 7 > > > content-type > : > multipart/form-data;boundary=Boundary_1_18429817_1269230836954 > 7 > > > accept > : > text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 > 7 > > > mime-version > : > 1.0 > 7 > > > --Boundary_1_18429817_1269230836954 > Content-Disposition: form-data;name="media" > Content-Type: multipart/form-data > GIF89a................................. > --Boundary_1_18429817_1269230836954-- > A message body reader for Java type, class > com.sun.jersey.multipart.FormDataMultiPart, and MIME media type, > multipart/form-data;boundary=Boundary_1_18429817_1269230836954, was > not found > 7 > < > 415 > 7 > < >