Страница ошибки Whitelabel - приложение не имеет явного отображения для /error
Я настроил приложение весенней загрузки, но при загрузке приложения я получаю сообщение об ошибке, как показано ниже
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Dec 24 12:46:27 IST 2018
There was an unexpected error (type=Not Found, status=404).
No message available
Я прошел по ссылке ниже и обновил свой контроллер, чтобы он стал частью корневого пакета, содержащего основной класс. Это приложение не имеет явного сопоставления для /error
Я использовал ниже упомянутую конфигурацию / код для моего приложения:
build.gradle
buildscript {
ext {
springBootVersion = '2.1.1.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.ticket'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('javax.servlet:jstl')
implementation('org.springframework.boot:spring-boot-starter-web')
runtimeOnly('com.h2database:h2')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
TicketController.java
package com.ticket.controller;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class TicketController {
static Logger log = LogManager.getLogger();
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView homeScreen(ModelMap model) {
return new ModelAndView("view");
}
}
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
JSP путь
src/main/webapp/WEB-INF/jsp/view.jsp
1 ответ
По умолчанию загрузка Spring не дает возможности разрешать Jsp для слоя представления. Добавление в свойства ниже
build.gradle
решил проблему
implementation('org.apache.tomcat.embed:tomcat-embed-jasper')
Ответ очень прост: если вы используете тимелеаф, добавьте следующие строки в свой pom.xml:
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-thymeleaf </artifactId>
</dependency>
на этом все, вы должны поместить свои представления в пакет шаблонов src / main / resources/templates
Если вы используете файлы jsp для представлений, описанное выше не работает, вы должны добавить следующие строки в свой файл application.properties:
spring.mvc.view.prefix = / WEB-INF / views /
spring.mvc.view.suffix = .jsp
предыдущие строки указывают папки, в которых драйверы будут искать представления, и они также должны существовать в этой структуре папок.
и в ваш pom.xml эти строки:
**
<dependency>
<groupId> org.apache.tomcat.embed </groupId>
<artifactId> tomcat-embed-jasper </artifactId>
<scope> provided </scope>
</dependency>
**
Вот и все, что указывает на весеннюю загрузку, так это на то, что он не может найти запрошенный ресурс, но с тем, что он уже описывает выше, это должно быть решено.