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.