我尝试使用ServletContext`
读取文件InputStream is = servletContext.getResourceAsStream(path)
路径的值是:
path = D:\Assignments\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HelpGuide\GeneratedReports\userDetail.pdf`
userDetail.pdf
文件存在于给定路径中,但是当我尝试使用上面定义的servlet context定义将资源作为流时,is
的值为null。
答案 0 :(得分:1)
这是因为getResourceAsStream查找相对于上下文根的路径。 检查servlet上下文的javadoc,特别是“getResource”部分:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResourceAsStream(java.lang.String) 您应该使用相对路径并将pdf放在类路径中,这将是一种更好的做法,因为您的应用程序不会依赖于绝对路径。
答案 1 :(得分:0)
这是一个糟糕的主意,就像servlet告诉你的那样。
将该PDF放在CLASSPATH中(例如WAR的WEB-INF /类),并从servlet上下文中将其作为InputStream读取。
绝对路径是Web应用程序的错误方法。