Публикация Springboot webapp на ошибке индекса AWS 404 - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь изучить Java, и я сделал приложение Springboot, используя Eclipse и Maven. Я начал скачивать базу с https://start.spring.io/, а затем создал свой первый контроллер и страницу индекса jsp. Но когда я пытался упаковать его во время войны и опубликовать его на AWSasticbeanstalk, у меня была эта ошибка:

Сб 05 октября 09:42:45 UTC 2019 Произошла непредвиденная ошибка (тип = Не найдено, статус = 404). /WEB-INF/jsp/index.jsp

Я заявляю, что: - Когда я запускаю веб-приложение на моем компьютере, оно работает отлично! - Я уже настроил на AWS (в пользовательских переменных) изменить порт на 5000

Это структура проекта

портфолио

- src
  - main
    - java
    - resources (where i have static and application.properties
    - webapp
      - WEB-INF
        - jsp
          - index.jsp
pom.xml

Этоpom.xml

<?xml version="1.0" encoding="UTF-8"?>

https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 war org.springframework.boot spring-boot-starter-parent 2.1.9.RELEASE портфель com.sofidis 0.0.1-SNAPSHOT портфолио Портфельный проект для SpringBoot

<properties>
    <java.version>1.8</java.version>
</properties>

<repositories>
    <repository>
        <id>spring-milestone</id>
        <name>Spring Milestone Repository</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper -->
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper</artifactId>
        <version>9.0.26</version>
        <!-- aggiunto per creare il war -->
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

</dependencies>
<!-- plugin repository aggiunto per compilare il war -->
<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <url>https://repo.spring.io/snapshot</url>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <url>https://repo.spring.io/milestone</url>
    </pluginRepository>
</pluginRepositories>
<build>
    <plugins>
        <!-- precedente <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> 
            </plugin> -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Это приложение. Свойства

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

Это мой главный контроллер PortfolioApplication.java

package com.sofidis.portfolio;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;



@SpringBootApplication
public class PortfolioApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(PortfolioApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(PortfolioApplication.class);
    }

}

Этомой HomeController


import com.sofidis.portfolio.model.*;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController 
{

    @RequestMapping(value = "/")
    public String index( HttpSession session) 
    {

        PageMeta ptitle = new PageMeta();
        String titlepagina= ptitle.getPtitle("index");      
        session.setAttribute("pagetitle", titlepagina);

        PageMeta pdesc = new PageMeta();
        String descpagina= pdesc.getPdescription("index");      
        session.setAttribute("pagedescription", descpagina);

        return "index"; 

    }


}

И это index.jps


<%@ page isELIgnored="false"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>${pagetitle}</title>
<meta name="description" content="${pagedescription}">
<jsp:include page="./includes/common_head.jsp" />
</head>
<body>
 <p>Hello World</p>                             

</body>
</html>

Большое спасибо за помощь !! Я в отчаянии: ((

1 Ответ

0 голосов
/ 05 октября 2019

Под WEB-INF вы должны размещать только классы, библиотеки, web.xml. JSP должны размещаться на том же уровне, что и WEB-INF, а не в WEB-INF. В вашем случае это должно быть следующим:

webapp
  WEB-INF
    ...
  jsp
    index.jsp

После этого могут возникнуть и другие проблемы. Но сначала измените структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...