Crash-ID Crash-ID - 4 months ago 98
Java Question

Spring Boot JSP 404

I'm trying to add a jsp page in my Spring Boot service. My problem is that every time I try to go to that page I have this:


Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing
this as a fallback.

Tue Apr 21 23:16:00 EEST 2015 There was an unexpected error (type=Not
Found, status=404). No message available


I have added the prefix and sufix into my application.properties:

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


This is my controller class:

@Controller
public class MarkerController {
@RequestMapping(value="/map")
public String trafficSpy() {
return "index";
}
}


My Application class:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
private static Logger logger = Logger.getLogger(Application.class.getName());

public static void main(String[] args) {
logger.info("SPRING VERSION: " + SpringVersion.getVersion());
SpringApplication.run(Application.class, args);
}
}


And the index.jsp:

<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">

<body>
<h1>Hello, World!!!</h1>


<p>JSTL URL: ${url}</p>
</body>

</html>


And this is the src file structure:

├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │   └── example
│   │   │   └── internetprogramming
│   │   │   └── myserver
│   │   │   └── server
│   │   │   ├── Application.java
│   │   │   ├── config
│   │   │   │   └── DatabaseConfig.java
│   │   │   ├── controller
│   │   │   │   └── MarkerController.java
│   │   │   ├── dao
│   │   │   │   ├── MarkerDaoImplementation.java
│   │   │   │   └── MarkerDaoInterface.java
│   │   │   ├── Marker.java
│   │   │   └── service
│   │   │   ├── MarkerServiceImplementation.java
│   │   │   └── MarkerServiceInterface.java
│   │   ├── resources
│   │   │   └── application.properties
│   │   └── webapp
│   │   └── WEB-INF
│   │   └── jsp
│   │   └── index.jsp

Answer

Ensure that you have jasper and jstl in the list of dependencies:

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

Here is a working starter project - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

Comments