Я разработал приложение spring boot
и поместил следующие записи в src/main/resources/application.properties
:
spring.mvc.view.prefix: /
spring.mvc.view.suffix: .jsp
server.port=5000
Теперь, когда я запускаю его (mvn clean spring-boot:run
) локально, я получаю выводTomcat started on port(s): 5000 (http)
и приложение доступно в браузере под http://localhost:5000/welcome.
Я создал экземпляр Java
в Amazon Elastic Bean Stalk, я загрузил war
, я даже открыл порт 5000 в соответствующей группе безопасности на экземпляре EC2:
, но когда я сейчас перехожу на http://my -aws-ebs-instance.com / welcome: 5000 , я получаю следующее сообщение:
Страница ошибки Whitelabel Это приложение не имеет явного сопоставления для / error, поэтому вы видите это как запасной вариант.
Чт 20 декабря 16:30:33 UTC 2018 Произошла непредвиденная ошибка (тип = Не найдено, статус = 404)./welcome.jsp
Почему так происходит?Что я забыл настроить?
---- РЕДАКТИРОВАТЬ
в соответствии с запросом, вот корневой класс java:
package com.hellokoding.auth;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(WebApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(WebApplication.class, args);
}
}
Вот также структура моего проектас выделенной страницей welcome.jsp
:
Когда я распаковываю сгенерированный файл war
, это структура файла на моем жестком диске:
Мой pom.xml
файл:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>auth</artifactId>
<name>auth</name>
<description>my descr</description>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
, а класс UserController
содержит:
...
@Controller
@Scope("session")
public class UserController {
@RequestMapping(value = {"/", "/welcome"}, method = RequestMethod.GET)
public String welcome(Model model) {
return "welcome";
}
...
Я добавил несколько журналов в метод welcome
и вижу, что он работает правильно.Кроме того, в файлах журнала я вижу следующую запись:
Mapped "{[/ || /welcome],methods=[GET]}" onto public java.lang.String com.hellokoding.auth.web.UserController.welcome(org.springframework.ui.Model)
, поэтому я понятия не имею, почему эта вещь не работает.После 11 часов попыток заставить его работать, я подвергаю сомнению свой жизненный выбор, а также задаюсь вопросом, почему кто-нибудь когда-либо использовал бы такой глупый фреймворк, поскольку он не работает ootb.
---edit:
Я загрузил упрощенный код в github https://github.com/nalogowiec/springbootProblem