L'application Spring Boot donne 404 lorsqu'elle est déployée sur Tomcat mais fonctionne avec le serveur intégré
Guidé par Portion de Contenu Web avec Spring MVCje suis de la création d'un Ressort de Démarrage de l'application web que je peux courir en utilisant à la fois le Tomcat intégré de l'instance ainsi que sur un Tomcat autonome 8 serveur.
L'application fonctionne comme prévu lors de l'exécution, comme java -jar adminpage.war
et je vois le résultat escompté lorsque je visite http://localhost:8080/table
. Cependant, quand je le déployer sur un serveur Tomcat 8 serveur (en laissant tomber adminpage.war
dans le webapps
répertoire), j'ai une erreur 404 lorsque je visite https://myserver/adminpage/table
.
La catelina.log
et localhost.log
fichiers contiennent rien d'utile sur le serveur Tomcat.
Quelqu'un peut-il suggérer, où j'ai fait une bourde? Je n'ai pas eu les mêmes problèmes dans le passé, lorsque le déploiement de services RESTful avec Spring Boot, mais c'est ma première incursion dans une application web.
Mes fichiers de l'application:
src/main/java/com/.../Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
src/main/java/com/.../MainController.java
@Controller
public class MainController {
@RequestMapping("/table")
public String greeting(Model model) {
model.addAttribute("name", "Fooballs");
return "table";
}
}
src/main/resources/templates/table.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
pom.xml
<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>
<groupId>com.foo</groupId>
<artifactId>adminpage</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>adminpage</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
source d'informationauteur Duncan Jones
Vous devez vous connecter pour publier un commentaire.
J'avais oublié de modifier mon
Application.java
fichier à étendreSpringBootServletInitializer
et remplacer leconfigure
méthode.Fichier corrigé:
Astuce chapeau à https://mtdevuk.com/2015/07/16/how-to-make-a-spring-boot-jar-into-a-war-to-deploy-on-tomcat/ de remarquer mon erreur.
Plus d'info à Créer une image de la guerre de fichier au Printemps de Démarrage Officiel docs.