我目前正在使用绝对路径返回Java jersey的文件,如下所示
@Path("/database")
@Stateful
public class DBResource
{
@GET
@Path("/get/7zip")
@Produces("application/7z")
public StreamingOutput getDatabase()
{
java.io.File file = new java.io.File("/home/jack.jude/myfile.7z");
return new FileStreamingOutput(file);
}
}
我想知道如何在考虑到
的情况下从应用程序中返回资源Thread.currentThread().getContextClassLoader().getResource("");
不返回有意义的路径和
String rootPath = getServletConfig().getServletContext().getRealPath("/");
无法使用,因为我不是在servlet中,而是在Resource中。
答案 0 :(得分:0)
可以在资源中注入ServletContext
:
@Path("/database")
@Stateful
public class DBResource {
@Context
private ServletContext servletContext;
@GET
@Path("/get/7zip")
@Produces("application/7z")
public StreamingOutput getDatabase() {
servletContext.getRealPath(...);
...
}
}