0

这在单元测试中工作正常。我得到文件并可以打印内容。当我在服务器上部署它时,我得到一个 FilenotFoundExcpetion。这可能是什么原因?我正在部署在tomcat上。

String path = "WebContent/images/image.jpeg";

FileSystemResource resource = new FileSystemResource(path);

File image = resource.getFile();
4

3 回答 3

1

使用上下文路径将位置带到您的工作项目中,然后您可以存储自己的路径,就像您提到的 images/image.jpg

  String path = request.getSession().getContextPath().getRealPath("/")+"images/image.jpg";

我想它会帮助你!

于 2012-10-18T12:40:40.023 回答
0

当您将 Web 应用程序部署到服务器上时,WebContent 文件夹是隐式的。

在 Web 服务器的上下文中执行时使用 String path = "/images/image.jpeg";

使用 Class.getResourceAsStream()

于 2012-10-18T08:28:35.060 回答
0
String path = "WebContent/images/image.jpeg";

这是一个相对路径,当部署在像 tomcat 这样的 servlet 容器中时,它将相对于您的部署目录或 tomcat 的主目录。并且您可能不会有一个名为 Webconent 的目录。WebContent 的内容可能会在战争中发生。

我可以想到两个解决方案

  • getRealPath如果您有权访问request或使用方法ServletContext
  • ClassPathResource如果您可以将文件放入,请使用WEB-INF\classes
于 2012-10-18T08:28:57.837 回答