我想爲我的基於澤西島的休息服務器實現文件上傳功能。JAX-RS澤西島錯誤java.lang.NoSuchMethodError
當我把我的pom.xml(使用maven)到:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>2.0</version>
</dependency>
我得到以下錯誤:
JAX-RS Jersey Error java.lang.NoSuchMethodError: org.glassfish.jersey.internal.util.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;
沒有 「新澤西媒體多」 -dependency其餘服務器正在工作,但我不能使用文件上傳功能。
下面的源代碼中的重要組成部分:
ResourceConfig resourceConfig = new ResourceConfig(RestWebServer.class);
//resourceConfig.register(MultiPartFeature.class);
URI endPoint = new URI(pathServer);
server = JdkHttpServerFactory.createHttpServer(endPoint, resourceConfig);
RestWebserver.java:
@Path("/fileupload")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormParam("file") InputStream uploadedInputStream,
@FormParam("file") FormDataContentDisposition fileDetail)
{
String uploadedFileLocation = "c://" + fileDetail.getFileName();
// save it
saveToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded via Jersey based RESTFul Webservice to: " + uploadedFileLocation;
return Response.status(200).entity(output).build();
}
然後我得到了「JdkHttpServerFactory無法解析」爲「server = JdkHttpServerFactory.createHttpServer(endPoint,resourceConfig);」 – hehe
對其他東西進行了編輯嘗試 - 只是升級版本。 – Vidya
其部分工作,uploadFile方法拋出以下錯誤: 警告:找不到注入源的類型爲public javax.ws.rs.core.Response的參數me.whisper.server.RestWebServer.uploadFile(java.io.InputStream ,org.glassfish.jersey.media.multipart.FormDataContentDisposition)位於索引0處。 org.glassfish.jersey.server.model.ModelValidationException:應用程序資源模型的驗證在應用程序初始化期間失敗。 [[致命]沒有找到注入源的參數類型爲public javax.ws.rs.core.Response .... – hehe