Java 泽西岛:文件上载问题
我用的是泽西1.9.1。当我包含com.sun.jersey[not org.glassfish]的jersey多部分时,FormDataMultiPart编译错误消失了。但是,它在运行时抛出以下错误。请随便修理Java 泽西岛:文件上载问题,java,jersey,Java,Jersey,我用的是泽西1.9.1。当我包含com.sun.jersey[not org.glassfish]的jersey多部分时,FormDataMultiPart编译错误消失了。但是,它在运行时抛出以下错误。请随便修理 Mar 22, 2017 1:52:53 PM org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet [Jersey] in web application [/csmgt] threw load(
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);
}
}
我收到的文件是inputstream。您检查过jar是否包含在已部署的WAR中吗?您部署在Tomcat中,您指的是哪个jar?你是说jersey-multipart.jar吗?它部署在Tomcat中。我可以在引用的库下看到它。我不想使用@FormDataParam,因为我想利用FormDataMultiPart的一个优点,另一个原因是我想避免使用注释作为参数。