Страница ошибки 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>

**

Вот и все, что указывает на весеннюю загрузку, так это на то, что он не может найти запрошенный ресурс, но с тем, что он уже описывает выше, это должно быть решено.

Другие вопросы по тегам