我使用的是 Jersey 1.9.1。当我包含 com.sun.jersey[not org.glassfish] 的 jersey-multipart 时,FormDataMultiPart 编译错误消失了。但是,它在运行时抛出以下错误。请修复!
Mar 22, 2017 1:52:53 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [Jersey] in web application [/csmgt] threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.multipart.FormDataMultiPart
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.getMethods(Unknown Source)
at com.sun.jersey.core.reflection.MethodList.getMethods(MethodList.java:77)
at com.sun.jersey.core.reflection.MethodList.<init>(MethodList.java:64)
at com.sun.jersey.core.reflection.MethodList.<init>(MethodList.java:60)
at com.sun.jersey.server.impl.modelapi.annotation.IntrospectionModeller.createResource(IntrospectionModeller.java:116)
at com.sun.jersey.server.impl.application.WebApplicationImpl.getAbstractResource(WebApplicationImpl.java:745)
at com.sun.jersey.server.impl.application.WebApplicationImpl.createAbstractResourceModelStructures(WebApplicationImpl.java:1522)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1295)
最佳答案
我尝试按照 Jersey 代码上传图像文件,
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Object fileupload(@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail,@Context HttpContext context){
String tenant = context.getRequest().getAbsolutePath().getHost();
Session session = null;
try{
LOGGER.info("--- File upload request ---");
session = TenantSesionFactory.openSession(tenant);
return this.fileUploadProcess.upload(uploadedInputStream, fileDetail,session);
}catch (BadRequestException e ) {
throw new BadRequestException(e.getMessage());
}catch(Exception e){
LOGGER.error("error in host -> "+tenant,e);
throw new UncaughtException();
}finally{
TenantSessionManager.close(session);
}
}
我收到文件作为输入流。
关于java - Jersey : File Uploading Issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42962756/