当前位置: 首页 > 知识库问答 >
问题:

AWS弹性豆茎上的Spring Boot/Tomcat仅显示404页

胡嘉歆
2023-03-14
<groupId>com.ideaEngine</groupId>
<artifactId>app_deployment</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <start-class>com.xxxxxxxx.WebappApplication</start-class>
    <java.version>1.8</java.version>
</properties>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

Elastic Beanstalk服务器是64位Amazon Linux2016.03v2.2.0,运行Tomcat 8 Java 8

Localhost JVM是jdk1.8.0_71.jdk

申请对象为:

@SpringBootApplication
public class WebappApplication {

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(WebappApplication.class);
    }

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(WebappApplication.class, args);
        System.out.println("Running............");
    }
}
@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Greetings from Spring Boot!";
    }
}

我将。war文件命名为webapp.war和root.war,并尝试在.com/和/root/和/webapp/访问它

它们都生产404。

日志文件显示应用程序正在部署到服务器:

Deployment of web application directory /var/lib/tomcat8/webapps/ROOT has finished in 2,143 ms
Environment health has transitioned from Info to Ok. Application update completed 58 seconds ago and took 15 seconds.

你知道我错过了什么吗?

谢了!

共有1个答案

姜乐家
2023-03-14

所以我有一个类似的问题。我按照mkyong https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/的说明进行操作,这似乎解决了我的问题。

查看您的代码,我注意到您的WebappApplication没有扩展SpringBootServletInitializer。也许可以尝试像这样扩展SpringBootServletInitializer。

@SpringBootApplication
public class WebappApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(WebappApplication.class);
    }

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(WebappApplication.class, args);
        System.out.println("Running............");
    }
}

那篇文章里都详述了。希望这能有所帮助!

 类似资料:
  • 配置验证异常:AWS Elastic Beanstatk无法与Amazon EC2通信以确定是否为Elastic Load均衡创建自定义安全组。 在创建AWS Elastic Beanstalk应用程序时,我在尝试继续“查看和启动”时遇到了这个错误。我是新手。请帮忙。

  • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

  • 我使用WindowsPowerShell创建了一个弹性Beanstalk环境,并遵循以下部署文档将Django应用程序部署到弹性Beanstalk 我完成了以下步骤:使用Django的Python虚拟环境, 创建了django项目, 创建IAM用户我获得了访问密钥ID和机密访问密钥ID 失败此步骤环境并部署您的Django应用程序 当我尝试it询问访问密钥、秘密访问密钥和区域aws应用程序自动生成

  • 我可以用超文本传输协议浏览网站,但不能用https,我ChromeERR_CONNECTION_REFUSED。 我的环境是Nodejs(64bit AmazonLinux2015.09 v2.0)上的ExpresJS服务器,运行在Elastic Beanstalk上。我可以在端口80上telnet到EC2弹性公共IP,但在端口443上无法telnet,连接被拒绝。 设置 HTTPS 的步骤 >

  • 有人能解释一下EC2和豆茎有什么区别吗。我想知道关于SaaS、PaaS和IaaS。 要在Wordpress中部署web应用程序,我需要一个可伸缩的托管服务。如果有什么比我的目的更好的,请告诉我,以及。 我想托管和部署多个Wordpress和Drupal站点。 我不想给服务器更多的时间,专注于开发。但是云托管需要是自动可伸缩的。