users@jersey.java.net

[Jersey] Problems with a multipart file Upload

From: hdev <sobisiak.h_at_shadowsrv.de>
Date: Wed, 28 Mar 2012 05:13:31 -0700 (PDT)

Hi guys, I'm trying to make a File Upload using Jersey Multipart. I'm using
Version 1.4 of the Jersey Jars. Here is the sourcecode I'm using:

import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataBodyPart;
import com.sun.jersey.multipart.FormDataParam;

 
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import java.io.InputStream;
 
@Path("/project")
public class ProjectResource {
 
  @POST
  @Consumes("multipart/mixed")
  public String post(@FormDataParam("file") FormDataBodyPart bodyPart) {
                
                FormDataContentDisposition contentDisp =
bodyPart.getFormDataContentDisposition();
                InputStream in = bodyPart.getValueAs(InputStream.class);
                return contentDisp.getFileName();
  }
 
}

Here Is the Webserver Code I'm using - I will post the important part
without my methods to load my endpoint config:

public void startServer() {
            
            java.io.File currentDir = new java.io.File("");
                String dir = currentDir.getAbsolutePath() + "\\";
                System.out.println(dir);
            
        webServer = new GrizzlyWebServer(getPort(iniPort()), dir, true);
 
        ServletAdapter jerseyAdapter = new ServletAdapter();
        jerseyAdapter.setServletInstance(new ServletContainer());
       
jerseyAdapter.addInitParameter("com.sun.jersey.config.property.packages",
        "com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider;" +
        "com.sun.jersey.multipart.impl;" +
        "com.sun.jersey.core.impl;" +
        "com.sun.jersey.server.impl;" +
        "de.hs.upload.resources");
        jerseyAdapter.setContextPath("/");
        jerseyAdapter.setServletInstance(new ServletContainer());
        
        //Statische Resourcen
        ServletAdapter staticContentAdapter = new ServletAdapter(dir +
"apps\\");
        staticContentAdapter.setContextPath("/apps");
        staticContentAdapter.setHandleStaticResources(true);
        
 
        webServer.addGrizzlyAdapter(jerseyAdapter, new String[]{"/"});
        webServer.addGrizzlyAdapter(staticContentAdapter, new
String[]{"/apps"});

        SSLConfig sslConfig = new SSLConfig();

        String keystore_server =
Thread.currentThread().getContextClassLoader().getResource("keystore_server").getFile();
        String truststore_server =
Thread.currentThread().getContextClassLoader().getResource("truststore_server").getFile();
 
        sslConfig.setKeyStoreFile(keystore_server);
        sslConfig.setKeyStorePass("******");
        sslConfig.setTrustStoreFile(truststore_server);
        sslConfig.setTrustStorePass("******");
 
        webServer.setSSLConfig(sslConfig);
 
 
        try {
            System.out.println("*******************\n" +
                                               "Server Gestartet\n" +
                                               "URL: " + getBaseURI());
            webServer.start();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }



My Problem is, I always get this Error Message if I run my code:

Mrz 28, 2012 1:52:29 PM com.sun.jersey.api.core.PackagesResourceConfig init
Information: Scanning for root resource and provider classes in the
packages:
  com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider
  com.sun.jersey.multipart.impl
  com.sun.jersey.core.impl
  com.sun.jersey.server.impl
  de.hs.upload.resources
Mrz 28, 2012 1:52:29 PM com.sun.jersey.api.core.ScanningResourceConfig
logClasses
Information: Root resource classes found:
  class de.hs.upload.resources.ProjectResource
Mrz 28, 2012 1:52:29 PM com.sun.jersey.api.core.ScanningResourceConfig init
Information: No provider classes found.
Mrz 28, 2012 1:52:29 PM
com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
Information: Initiating Jersey application, version 'Jersey: 1.4 09/11/2010
10:30 PM'
Mrz 28, 2012 1:52:30 PM com.sun.jersey.spi.inject.Errors
processErrorMessages
Schwerwiegend: The following errors and warnings have been detected with
resource and/or provider classes:
  SEVERE: Missing dependency for method public java.lang.String
de.hs.upload.resources.ProjectResource.post(com.sun.jersey.multipart.FormDataBodyPart)
at parameter at index 0
  SEVERE: Method, public java.lang.String
de.hs.upload.resources.ProjectResource.post(com.sun.jersey.multipart.FormDataBodyPart),
annotated with POST of resource, class
de.hs.upload.resources.ProjectResource, is not recognized as valid resource
method.
Mrz 28, 2012 1:52:30 PM com.sun.grizzly.http.servlet.ServletAdapter
doService
Schwerwiegend: service exception:
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
        at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
        at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:137)
        at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:203)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:695)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:690)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:438)
        at
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:287)
        at
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:587)
        at
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:213)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:516)
        at javax.servlet.GenericServlet.init(GenericServlet.java:241)
        at
com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:428)
        at
com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:367)
        at
com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:324)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:180)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Unknown Source)

Mrz 28, 2012 1:54:24 PM com.sun.jersey.api.core.PackagesResourceConfig init
Information: Scanning for root resource and provider classes in the
packages:
  com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider
  com.sun.jersey.multipart.impl
  com.sun.jersey.core.impl
  com.sun.jersey.server.impl
  de.hs.upload.resources
Mrz 28, 2012 1:54:24 PM com.sun.jersey.api.core.ScanningResourceConfig
logClasses
Information: Root resource classes found:
  class de.hs.upload.resources.ProjectResource
Mrz 28, 2012 1:54:24 PM com.sun.jersey.api.core.ScanningResourceConfig init
Information: No provider classes found.
Mrz 28, 2012 1:54:24 PM
com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
Information: Initiating Jersey application, version 'Jersey: 1.4 09/11/2010
10:30 PM'
Mrz 28, 2012 1:54:25 PM com.sun.jersey.spi.inject.Errors
processErrorMessages
Schwerwiegend: The following errors and warnings have been detected with
resource and/or provider classes:
  SEVERE: Missing dependency for method public java.lang.String
de.hs.upload.resources.ProjectResource.post(com.sun.jersey.multipart.FormDataBodyPart)
at parameter at index 0
  SEVERE: Method, public java.lang.String
de.hs.upload.resources.ProjectResource.post(com.sun.jersey.multipart.FormDataBodyPart),
annotated with POST of resource, class
de.hs.upload.resources.ProjectResource, is not recognized as valid resource
method.
Mrz 28, 2012 1:54:25 PM com.sun.grizzly.http.servlet.ServletAdapter
doService
Schwerwiegend: service exception:
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
        at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
        at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:137)
        at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:203)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:695)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:690)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:438)
        at
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:287)
        at
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:587)
        at
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:213)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:516)
        at javax.servlet.GenericServlet.init(GenericServlet.java:241)
        at
com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:428)
        at
com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:367)
        at
com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:324)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:180)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Unknown Source)


I found some things about this, but nothing helped me to find one solution.
I also tried to use several versions of Jersey, but no success. what I'm
missing? Here is the list of libraries i put into my build path:

asm-3.1.jar
jersey-client-1.4.jar
jersey-core-1.4.jar
jersey-multipart-1.4.jar
jersey-server-1.4.jar
junit-3.8.1.jar
mimepull-1.4.jar
servlet-api-2.5.jar
grizzly-framework-1.9.18-i.jar
grizzly-http-1.9.18-i.jar
grizzly-http-framework-1.9.18-i.jar
grizzly-portunif-1.9.18-i.jar
grizzly-rcm-1.9.18-i.jar
grizzly-servlet-webserver-1.9.18-i.jar
grizzly-utils-1.9.18-i.jar
jersey-bundle-1.4.jar

 

--
View this message in context: http://jersey.576304.n2.nabble.com/Problems-with-a-multipart-file-Upload-tp7413319p7413319.html
Sent from the Jersey mailing list archive at Nabble.com.