Được hướng dẫn bởi Serving Web Content with Spring MVC, tôi đang tạo một ứng dụng web khởi động Spring mà tôi có thể chạy bằng cả cá thể Tomcat được nhúng cũng như trên máy chủ Tomcat 8 độc lập.Ứng dụng khởi động Spring cung cấp 404 khi được triển khai cho Tomcat nhưng hoạt động với máy chủ nhúng
Ứng dụng hoạt động như mong đợi khi được thực hiện dưới dạng java -jar adminpage.war
và tôi thấy kết quả mong đợi khi tôi truy cập http://localhost:8080/table
. Tuy nhiên, khi tôi triển khai máy chủ Tomcat 8 (bằng cách thả adminpage.war
vào thư mục webapps
), tôi gặp lỗi 404 khi truy cập https://myserver/adminpage/table
.
Các tệp catelina.log
và localhost.log
không chứa gì hữu ích trên máy chủ Tomcat.
Có ai có thể đề xuất nơi tôi đã định cấu hình sai không? Tôi đã không có những vấn đề tương tự trong quá khứ khi triển khai các dịch vụ RESTful với Spring Boot, nhưng đây là bước đột phá đầu tiên của tôi vào một ứng dụng web.
hồ sơ của tôi:
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>
Ứng dụng của bạn có chứa web.xml không? –
@SergeyBespalov Tôi không nghĩ rằng nó cần một với Spring Boot. Xem câu trả lời của tôi bên dưới - Tôi đã quên điều chỉnh tệp 'Application.java' của mình. –
bạn nói đúng là không cần thiết, nhưng vẫn có thể sử dụng với Spring Boot –