java.lang.ClassNotFoundException:org.glassfish.jersey.server.internal.inject.ExtractorException
我正在尝试使用多部分数据进行图像上传,我也做到了。但我的问题是我的其他RESTAPI方法不能处理多部分表单数据。 我得到了java.lang.ClassNotFoundException:org.glassfish.jersey.server.internal.inject.ExtractorException 我正在使用Fallowing jar文件java.lang.ClassNotFoundException:org.glassfish.jersey.server.internal.inject.ExtractorException,java,rest,glassfish,Java,Rest,Glassfish,我正在尝试使用多部分数据进行图像上传,我也做到了。但我的问题是我的其他RESTAPI方法不能处理多部分表单数据。 我得到了java.lang.ClassNotFoundException:org.glassfish.jersey.server.internal.inject.ExtractorException 我正在使用Fallowing jar文件 aopalliance-repackaged-2.5.0-b32.jar hk2-api-2.5.0-b32.jar hk2-locator-2
aopalliance-repackaged-2.5.0-b32.jar
hk2-api-2.5.0-b32.jar
hk2-locator-2.5.0-b32jar
hk2-utils-2.5.0-b32jar
javassist-3.40.0-GA.jar
javax.annotation-api-1.2.jar
javax.inject-2.5.0-b32.jar
javax.servlet-api-3.0.1.jar
javax.ws.rs-api-2.0.1.jar
jaxb-api-2.2.7.jar
jaxrs-ri-2.21.jar
jersey-client.jar
jersey-common.jar
jersey-container-servlet-core.jar
jersey-container-servlet.jar
jersey-guava-2.25.1.jar
jersey-media-jaxb.jar
jersey-media-multipart-2.12.jar
jersey-server.jar
mimepull-1.9.3.jar
org.osgi.core-4.2.0.jar
osog-resource-locator-1.0.1.jar
persistence-api-1.0.jar
validation-api-1.1.0.Final.jar
我正在使用的空闲代码
@Path("/fileandjson")
public class HelloWorld {
public static final String UPLOAD_FILE_SERVER = "D:/saveimages/";
@POST
@Path("/sample")
@Produces( MediaType.APPLICATION_JSON)
public void sample(){
System.out.println("inside web service ");
}
@POST
@Path("/upload/images")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadImageFile(@FormDataParam("uploadFile") InputStream fileInputStream,
@FormDataParam("uploadFile") FormDataContentDisposition fileFormDataContentDisposition,
@FormDataParam("firstName") String name) {
String fileName = null;
String uploadFilePath = null;
try {
System.out.println("name : "+name);
fileName = fileFormDataContentDisposition.getFileName();
uploadFilePath = writeToFileServer(fileInputStream, fileName);
System.out.println("fileName : "+fileName+" : uploadFilePath : "+uploadFilePath);
}
catch(IOException ioe){
ioe.printStackTrace();
}
finally{
// release resources, if any
}
return Response.ok("File uploaded successfully at " + uploadFilePath).build();
}
private String writeToFileServer(InputStream inputStream, String fileName) throws IOException {
OutputStream outputStream = null;
String qualifiedUploadFilePath = UPLOAD_FILE_SERVER + fileName;
try {
outputStream = new FileOutputStream(new File(qualifiedUploadFilePath));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
outputStream.flush();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
finally{
//release resource, if any
outputStream.close();
}
return qualifiedUploadFilePath;
}
我犯了一个错误
SEVERE: Servlet /SampleForTestingrest2.0 threw load() exception
java.lang.ClassNotFoundException: org.glassfish.jersey.server.internal.inject.ExtractorException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.glassfish.jersey.media.multipart.internal.FormDataParamValueFactoryProvider.createValueFactory(FormDataParamValueFactoryProvider.java:361)
at org.glassfish.jersey.server.internal.inject.AbstractValueFactoryProvider.getValueFactory(AbstractValueFactoryProvider.java:134)
at org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getValueFactory(ParameterValueHelper.java:176)
at org.glassfish.jersey.server.spi.internal.ParameterValueHelper.createValueProviders(ParameterValueHelper.java:140)
at org.glassfish.jersey.server.model.Invocable.getValueProviders(Invocable.java:320)
at org.glassfish.jersey.server.model.ResourceMethodValidator.checkValueProviders(ResourceMethodValidator.java:165)
at org.glassfish.jersey.server.model.ResourceMethodValidator.checkMethod(ResourceMethodValidator.java:106)
at org.glassfish.jersey.server.model.ResourceMethodValidator.visitJaxrsResourceMethod(ResourceMethodValidator.java:102)
at org.glassfish.jersey.server.model.ResourceMethodValidator.visitResourceMethod(ResourceMethodValidator.java:92)
at org.glassfish.jersey.server.model.ResourceMethod.accept(ResourceMethod.java:873)
at org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:161)
at org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
at org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
at org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
at org.glassfish.jersey.server.model.ComponentModelValidator.access$000(ComponentModelValidator.java:90)
at org.glassfish.jersey.server.model.ComponentModelValidator$1.run(ComponentModelValidator.java:151)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.server.model.ComponentModelValidator.validate(ComponentModelValidator.java:146)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:548)
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:182)
at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:348)
at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:345)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:345)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
严重:Servlet/SampleForTestingrest2.0引发load()异常
java.lang.ClassNotFoundException:org.glassfish.jersey.server.internal.inject.ExtractorException
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
位于org.glassfish.jersey.media.multipart.internal.FormDataParamValueFactoryProvider.createValueFactory(FormDataParamValueFactoryProvider.java:361)
位于org.glassfish.jersey.server.internal.inject.AbstractValueFactoryProvider.getValueFactory(AbstractValueFactoryProvider.java:134)
位于org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getValueFactory(ParameterValueHelper.java:176)
位于org.glassfish.jersey.server.spi.internal.ParameterValueHelper.createValueProviders(ParameterValueHelper.java:140)
位于org.glassfish.jersey.server.model.Invocable.getValueProviders(Invocable.java:320)
位于org.glassfish.jersey.server.model.ResourceMethodValidator.checkValueProviders(ResourceMethodValidator.java:165)
位于org.glassfish.jersey.server.model.ResourceMethodValidator.checkMethod(ResourceMethodValidator.java:106)
位于org.glassfish.jersey.server.model.ResourceMethodValidator.visitjaxrResourceMethod(ResourceMethodValidator.java:102)
位于org.glassfish.jersey.server.model.ResourceMethodValidator.visitResourceMethod(ResourceMethodValidator.java:92)
位于org.glassfish.jersey.server.model.ResourceMethod.accept(ResourceMethod.java:873)
位于org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:161)
位于org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
位于org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
位于org.glassfish.jersey.server.model.ComponentModelValidator.validateWithErrors(ComponentModelValidator.java:167)
位于org.glassfish.jersey.server.model.ComponentModelValidator.access$000(ComponentModelValidator.java:90)
位于org.glassfish.jersey.server.model.ComponentModelValidator$1.run(ComponentModelValidator.java:151)
位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:315)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:297)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:267)
位于org.glassfish.jersey.server.model.ComponentModelValidator.validate(ComponentModelValidator.java:146)
位于org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:548)
位于org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:182)
位于org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:348)
位于org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:345)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:315)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:297)
位于org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255)
位于org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:345)
位于org.glassfish.jersey.servlet.WebComponent(WebComponent.java:390)
位于org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
位于org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
位于javax.servlet.GenericServlet.init(GenericServlet.java:160)
位于org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
位于org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
位于org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
位于org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
您正在混合不同的版本,例如,您有jaxrs-ri-2.21.jar和jersey-media-multipart-2.12.jar,但我认为您需要jersey-media-multipart-2.21.jar
现在还不清楚您要使用哪个特定的Jersey版本,如果上面的提示不能帮助您解决问题,您应该使用pom.xml
更新问题(通常最好显示pom.xml
,以支持jar文件的名称)