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

标签 java eclipse tomcat amazon-ec2

我在 Eclipse 中创建了一个动态 Web 项目,将其导出到一个 .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 映射,它们将 url-pattern/* 映射到 servlet-name“myapp”,将 url-pattern *.html 映射到 servlet-name“default”。

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

最佳答案

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

关于java - 在 EC2 上的 Tomcat 上从 JavaEE 项目提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683456/

相关文章:

python - Eclipse 编辑器无法识别 Scipy 内容

java - Tomcat6 中的基本身份验证不适用于目录

java - Docx4j Permgen Space with 2G 和转换为 PDF 时的小文档

Java 库运行时与编译时

Java 线程和关闭 Hook

Java:为什么矩阵接受大于预定义长度的行?

java - Java 中 +(加号)运算符的优先级是什么?

java - 如何在 Eclipse 中重命名一个类及其对应的文件?

java - 什么是 OutputStreamWriter 的逆函数

java - 如何通过命令行向服务器发出命令