无法从远程服务器

时间:2016-06-17 20:49:51

标签: java jsp openshift

我的动态网络项目具有以下结构。

的WebContent / WEB-INF /的JSP / index.jsp的。我正在尝试从我的jsp文件中访问file.txt并显示该文件中的内容。 file.txt位于WebContent / resources文件夹中。

我正在使用,

String jspPath = session.getServletContext().getRealPath("/resources"); jspPath = jspPath.replace("\\", "/"); String fileName = "/file.txt"; String txtFilePath = jspPath + fileName;

打开文件后,代码显示内容。

它正在使用localhost但是当我在线上传它时,它不会在jsp页面上显示文本文件中的内容。

我不知道为什么它不起作用,我认为filepath可能是一个问题,因为它抛出了FileNotFoundException,但我通过做一些修改来修复它。现在它没有显示内容。有人可以帮忙吗?我是.war文件的开放式部署平台。

1 个答案:

答案 0 :(得分:1)

实际上,您的上述JSP页面永远不会被执行,因为它位于最终用户无法访问的WEB-INF文件夹中,因此请确保将您的JSP从WEB-INF中删除。 要读取文件,您可以以更简单的方式加载和打印文件:

<%@page import="java.io.*"%>
<% 
InputStream in=config.getServletContext().getResourceAsStream("/resources/hello.txt");
int ch;
while((ch=in.read())!=-1){
    out.print((char)ch);
}
in.close();
%>

由于上述调用getRealPath的方法不适用于使用JBoss等虚拟文件系统的应用程序服务器。

注意:为了获得更好的性能,您可以使用其他方法来读取文件(例如缓冲和缓存),但这不属于本问题的范围。