由Maven组装后,将war-file放在外部Tomcat服务器上。当servlet启动时,有一个FileNotFoundException
,它找不到2.html
文件(路径相对于 - "2.html"
)。此文件位于应用程序的根目录中。当我使用内置的Eclipse内部服务器Tomacat(Ran as - 在服务器上运行)启动项目时 - 一切正常,文件位于(路径是绝对的 - "F: /javaEEBelhard/Task-4/WebContent/WEB-INF/1.html"
)。
以下是Eclipse中的代码:
try
{
FileInputStream fileIntputStream = new FileInputStream("2.html");
InputStreamReader inputStreamReader = new InputStreamReader(fileIntputStream, CHARSET_NAME);
BufferedReader reader = new BufferedReader(inputStreamReader);
String line;
while ((line = reader.readLine()) != null)
{
writer.println(line);
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
答案 0 :(得分:0)
如果部署战争 - 那就是你的问题。我打赌该文件不存在,因为它在WAR文件中。 (而文件api查看文件系统)
如果您需要可靠地阅读文件,请使用servletContext.getResource(path)
或servletContext.getResourceAsStream(path)