我试图检索资源文件夹中的所有文件,以便能够在JAXB
unmarshaller上使用它,但我无法找到任何可以使用的内容而不是常规版{ {1}}在java上。
我已尝试file.listFiles()
并在foreach循环中使用它,但抛出了空指针。
只是指出它,上下文是泽西File files = new File(this.context.getResource("/WEB-INF/folder").getPath());
注入变量。
@Update
好的,我现在正在使用@Context ServletContext context
并将每个路径转换为uri而不是文件。
getResourcePaths
比tomcat给我一个错误,它说文件Set<String> catalogosPath = this.context.getResourcePaths("/WEB-INF/catalogos/");
for(String catalogoPath : catalogosPath){
URI uri = context.getResource(catalogoPath).toURI();
File arquivo = new File(uri.getPath());
tempCat = (Catalogo) jaxbUnmarshaller.unmarshal(arquivo);
catalogos.add(tempCat);
}
不存在但存在。我试图解散它,但它让我没有找到任何文件。我可能会误解getresourcepaths的返回,它给了我一个网址,我正在转换它吗?
答案 0 :(得分:-1)
您可以在servlet中使用context.getRealPath("/")
来获取项目的基本路径。要获取文件列表,只需附加相对于项目路径的文件路径,例如context.getRealPath("/") + "/WEB-INF/classes/folder