在 AWS 中找不到 Servlet

Posted

技术标签:

【中文标题】在 AWS 中找不到 Servlet【英文标题】:Servlets not found in AWS 【发布时间】:2012-11-01 10:07:28 【问题描述】:
    我有一个 GWT 动态 Web 项目并生成 .war 文件 我在本地主机的 Tomcat 上测试它,工作正常。 我将它上传到 Amazon Web Services,运行 Apache Tomcat 6 的 Elastic Beanstalk 当我在 AWS 中运行已部署的版本时,它找不到 servlet,就像它们不存在一样 尝试了一个新的 GWT 项目,但仍然无法工作:“未找到 Servlet”

我有点卡住了。我不确定这是 GWT 问题还是我在使用 AWS-Elastic Beanstalk 时做错了什么。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

所以我在做了很多测试和东西后找到了解决方案:

Tomcat 6 是在弹性 beanstalk 引擎盖下运行的,默认情况下,当您将 XYZ.war 文件上传到 Tomcat 时,上下文 URL 是 (context-root)/XYZ。 我正在上传一个名为 MyWebProject.war 的战争,因此对于 Tomcat,它部署在 (context-root)/XYZ 上,但对于弹性 beanstalk,它部署到 YOUR_URL.elasticbeanstalk.com

这显然会导致web.xml以一种非常奇怪的方式混淆,所以你总结一下:

将您的 XYZ.war 重命名为 ROOT.war 并上传。这应该可以解决问题。

【讨论】:

以上是关于在 AWS 中找不到 Servlet的主要内容,如果未能解决你的问题,请参考以下文章

aws + serverless + webpack => 在 prod 中找不到模块 xxx

在 aws api 网关中找不到“GLIBC_2.18”错误

在 Java 构建路径中找不到超类“javax.servlet.http.HttpServlet”

从 EMR 迁移到 AWS Glue 后在 Spark SQL 中找不到表

http状态404 - 在jsp中找不到,Tomcat服务器上的servlet [重复]

EB CLI 在应用程序根目录中找不到 Dockerfile 或 Dockerrun.aws.json 文件