I have an extremely simple Spring-Boot MVC application here that is not working. One Controller with one page not loading and receiving a 404 not found.
I put a System.out.println("Home Page") statement in the controller method and validated that it is mapped and getting fired correctly but the template isn't loading.
The error:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Thu Nov 06 23:43:51 EST 2014 There was an unexpected error (type=Not Found, status=404).
The folder structure:
src/main/java +-Application.java +-WebController.java src/main/resources +-templates +-index.html
Abbreviated console output:
Server initialized with port: 8080 Starting service Tomcat Starting Servlet Engine: Apache Tomcat/7.0.55 Initializing Spring embedded WebApplicationContext Root WebApplicationContext: initialization completed in 1947 ms Mapping servlet: 'dispatcherServlet' to [/] Mapping filter: 'hiddenHttpMethodFilter' to: [/*] Mapped "{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String app.WebController.index() Tomcat started on port(s): 8080/http Started Application in 5.552 seconds (JVM running for 6.366) Home Page Home Page Home Page
Configuration:
@EnableAutoConfiguration @Configuration @ComponentScan public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(Application.class); } }
Controller:
@Controller public class WebController { @RequestMapping(value="/") public String index(){ System.out.println("Home Page"); return "index"; } }
index.html :
<!DOCTYPE html> <html lang="en"> <body> <h1>Hello</h1> </body> </html>
I have an extremely simple Spring-Boot MVC application here that is not working. One Controller with one page not loading and receiving a 404 not found.
I put a System.out.println("Home Page") statement in the controller method and validated that it is mapped and getting fired correctly but the template isn't loading.
The error:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Thu Nov 06 23:43:51 EST 2014 There was an unexpected error (type=Not Found, status=404).
The folder structure:
src/main/java +-Application.java +-WebController.java src/main/resources +-templates +-index.html
Abbreviated console output:
Server initialized with port: 8080 Starting service Tomcat Starting Servlet Engine: Apache Tomcat/7.0.55 Initializing Spring embedded WebApplicationContext Root WebApplicationContext: initialization completed in 1947 ms Mapping servlet: 'dispatcherServlet' to [/] Mapping filter: 'hiddenHttpMethodFilter' to: [/*] Mapped "{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String app.WebController.index() Tomcat started on port(s): 8080/http Started Application in 5.552 seconds (JVM running for 6.366) Home Page Home Page Home Page
Configuration:
@EnableAutoConfiguration @Configuration @ComponentScan public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(Application.class); } }
Controller:
@Controller public class WebController { @RequestMapping(value="/") public String index(){ System.out.println("Home Page"); return "index"; } }
index.html :
<!DOCTYPE html> <html lang="en"> <body> <h1>Hello</h1> </body> </html>
POM:
<?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> <groupId>com.App</groupId> <artifactId>App</artifactId> <version>0.0.1-SNAPSHOT</version> <name>App</name> <description>App</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.1.8.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.181</version> </dependency> <!--dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency--> <dependency> <groupId>com.firebase</groupId> <artifactId>firebase-client</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.10.4</version> </dependency> </dependencies> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <start-class>App.Application</start-class> <java.version>1.7</java.version> </properties> <repositories> <repository> <id>spring-releases</id> <name>Spring Releases</name> <url>http://repo.spring.io/libs-release</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-releases</id> <name>Spring Releases</name> <url>http://repo.spring.io/libs-release</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
It looks like you don't have Thymeleaf on your class path.
Add this dependency:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
and everything should work then.
If you're still facing some issues I recommend creating new project with http://start.spring.io/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With