获取 Jersey 3 中的文件资源
Get file resource in a Jersey 3
我是 运行 一个使用 Jersey 的 Web 应用程序。在我的控制器中,我试图在 src/main/resources
文件夹中获取一个文件。
我的文件夹结构是:
我的 gradle 依赖项是:
dependencies {
implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '3.0.2'
implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '3.0.2'
implementation group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '3.0.2'
}
我的代码是:
@GET
@Path(value = "/log/details/{fileId}")
@Produces(MediaType.APPLICATION_JSON)
public List<IngestionLogs> getIngestionLogDetails(@PathParam("fileId") String fileId) {
List<IngestionLogs> logs = new ArrayList<>();
try {
InputStream stream; // how do I get this?
List<IngestionLogs> errors = TsvFileValidators.parseObject(stream);
logs.addAll(errors);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return logs;
}
如何获得此文件的 InputStream
?
可以通过servletContext.getResourceAsStream
获取
InputStream is = servletContext.getResourceAsStream("/WEB-INF/test_model.js");
使用 @Context
添加 ServletContext
@Context private ServletContext servletContext;
如果缺少导入 jakarta.servlet.ServletContext
添加到依赖项 jakarta.servlet-api
我是 运行 一个使用 Jersey 的 Web 应用程序。在我的控制器中,我试图在 src/main/resources
文件夹中获取一个文件。
我的文件夹结构是:
我的 gradle 依赖项是:
dependencies {
implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '3.0.2'
implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '3.0.2'
implementation group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '3.0.2'
}
我的代码是:
@GET
@Path(value = "/log/details/{fileId}")
@Produces(MediaType.APPLICATION_JSON)
public List<IngestionLogs> getIngestionLogDetails(@PathParam("fileId") String fileId) {
List<IngestionLogs> logs = new ArrayList<>();
try {
InputStream stream; // how do I get this?
List<IngestionLogs> errors = TsvFileValidators.parseObject(stream);
logs.addAll(errors);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return logs;
}
如何获得此文件的 InputStream
?
可以通过servletContext.getResourceAsStream
获取InputStream is = servletContext.getResourceAsStream("/WEB-INF/test_model.js");
使用 @Context
ServletContext
@Context private ServletContext servletContext;
如果缺少导入 jakarta.servlet.ServletContext
添加到依赖项 jakarta.servlet-api