Spring MVC文件未找到异常

时间:2016-07-28 20:06:01

标签: java spring spring-mvc

我正在使用Spring MVC。在我的控制器中,我从MyClass调用了一个函数

MyClass{
  public static void readFile(){
    File file = new FileReader("myPath/myFile.txt");
    ...
  }
  public static void main(String[] args) {
    readFile();//No problem
  }
}

控制器:

@Controller
public class MyController{
  @RequestMapping(value = "/url", method = RequestMethod.GET)
  public String readFile(Locale locale, Model model) {
    MyClass.readFile();//File not found exception
    ....
  }
}

当我在MyClass的main()中测试时,读取工作正常,但是当我在服务器上运行项目并访问“/ url”时,我得到了这个:

java.io.FileNotFoundException: myPath/myFile.txt (The system cannot find the path specified)

如何在控制器中指定路径?

感谢您的时间。

3 个答案:

答案 0 :(得分:0)

服务器上的工作目录是什么?从该目录,服务器上是否存在文件的相对路径(" myPath / myFile.txt")?

假设您只需要阅读myFile.txt,那么通常myFile.txt将包含在WAR中,并通过getResourceAsStream阅读。

答案 1 :(得分:0)

我认为您正在寻找Spring中的Resource实现。 Spring将确定要使用哪种类型的资源,例如,如果您的文件位于类路径中,Spring将创建ClasspathResource或指向将创建FileResource的文件。如果您使用的是Spring 4.请尝试类似

的内容
@Value("file:///myPath/myFile.txt")
Resource myFile;

查看此Spring Resources文档

答案 2 :(得分:0)

因为这不是绝对的道路。程序将在工作目录下找到文件 你可以将它添加到第一个程序和第二个程序

   System.out.println("Working Directory = " +
    System.getProperty("user.dir"));

你会看到差异。