在EC2上的Tomcat上从JavaEE项目提供静态文件

时间:2015-04-16 18:47:42

标签: java eclipse tomcat amazon-ec2

我在Eclipse中创建了一个Dynamic Web Project,将其导出到.war文件,然后在安装了Tomcat的Amazon EC2实例(Ubuntu 14.04)中运行.war文件。如果我只使用PrintWriter进行输出,它工作正常,但我想在URL" someEC2path.amazonaws.com/myapp/index.html"时提供一个简单的index.html文件。请求。

在我的项目中,我有一个WebContents文件夹,其中包含3个其他文件夹:META-INF,WEB-INF和static。我将index.html文件放在静态文件夹中。在我的web.xml文件中,我有两个servlet-mappings,它们将url-pattern / *映射到servlet-name" myapp"和url-pattern * .html到servlet-name"默认"。

我这样做是因为我在多个地方读到这就是Tomcat将如何获取静态文件。它不起作用。我的index.html文件没有发送到浏览器。当调用上面列出的URL时,如何让Tomcat查找/发送我的index.html文件?

1 个答案:

答案 0 :(得分:0)

解决方案是确定servlet上下文路径以确定index.html的实际位置。我运行了这段代码:     ServletContext servletContext = getServletContext();     String contextPath = servletContext.getRealPath(File.separator);     PrintWriter out = response.getWriter();     通过out.println(contextPath中); 然后我找到了index.html的完整位置,并且能够在我的servlet中正确引用它。