Spring Boot - не удается разрешить страницу ошибки Whitelabel - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь запустить простое загрузочное приложение Spring за 2 дня, но все еще не могу заставить его работать.Я проверил все связанные вопросы и блоги, но проблема остается.

Структура моего проекта выглядит следующим образом.

Project Structure

POM.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<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-test</artifactId>
        <scope>test</scope>
    </dependency>
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
</dependencies>

WebApplication.java

@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer{


    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(WebApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }

}

Application.properties

server.servlet.context-path=/EBS-web
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
logging.level.org.springframework.web=DEBUG

LoginController

@Controller
public class LoginController {

    @RequestMapping(path="/")
    public String login() {
        System.out.println("******************logging************************");
        return "login";
    }

}

Login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Hi Login
</body>
</html>

Всякий раз, когда я пытаюсь запустить приложение какSpring Boot App (плагин STS для Eclipse) и доступ к http://localhost:8080/EBS-web/ Это дает ниже сообщение об ошибке на пользовательском интерфейсе

Страница ошибки Whitelabel Это приложение не имеет явного сопоставления для / error, поэтому вырассматривая это как запасной вариант.

Вс 23 сентября 17:34:52 IST 2018 Произошла непредвиденная ошибка (тип = Не найдено, статус = 404).Нет доступных сообщений

Из приведенной ниже трассировки стека я вижу, что Spring может извлечь метод обработчика, но не может найти связанный вид.

2018-09-23 17: 44: 12.248 DEBUG 14728 --- [nio-8080-exec-2] osweb.servlet.DispatcherServlet: последнее измененное значение для [/ EBS-web /]: -1

****************** ведение журнала ************************

2018-09-23 17: 44: 12.258 DEBUG 14728 --- [nio-8080-exec-2] oswsvContentNegotiatingViewResolver: запрошенные типы носителей: [text / html, application / xhtml + xml, изображение / webp, image / apng, application / xml; q = 0,9, / ; q = 0,8] на основе типов заголовков Accept и типов производимых носителей [ / ]) 2018-09-23 17: 44: 12.258 DEBUG 14728 -- [nio-8080-exec-2] oswservlet.view.BeanNameViewResolver: Не найдено подходящего компонента для имени представления 'login' 2018-09-23 17: 44: 12.260 DEBUG 14728 --- [nio-8080-exec-2]oswsvContentNegotiatingViewResolver: возвращение [org.springframework.web.servlet.view.JstlView: name 'login';URL [/WEB-INF/jsp/login.jsp]] на основе запрошенного медиа-типа 'text / html' 2018-09-23 17: 44: 12.260 DEBUG 14728 --- [nio-8080-exec-2] osweb.servlet.DispatcherServlet: представление рендеринга [org.springframework.web.servlet.view.JstlView: имя 'login';URL [/WEB-INF/jsp/login.jsp]] в DispatcherServlet с именем dispatcherServlet 2018-09-23 17: 44: 12.264 DEBUG 14728 --- [nio-8080-exec-2] osweb.servlet.view.JstlView: пересылка на ресурс [/WEB-INF/jsp/login.jsp] в InternalResourceView 'login' 2018-09-23 17: 44: 12.266 DEBUG 14728 --- [nio-8080-exec-2] osweb.servlet.DispatcherServlet: DispatcherServlet с именем 'dispatcherServlet', обрабатывающий запрос GET для [/EBS-web/WEB-INF/jsp/login.jsp] 2018-09-23 17: 44: 12.267 DEBUG 14728 --- [nio-8080-exec-2] swsmmaRequestMappingHandlerMapping: поиск метода-обработчика для пути /WEB-INF/jsp/login.jsp 2018-09-23 17: 44: 12.268 DEBUG 14728 --- [nio-8080-exec-2] swsmmaRequestMappingHandlerMapping: не найденометод-обработчик для [/WEB-INF/jsp/login.jsp] 2018-09-23 17: 44: 12.268 DEBUG 14728 --- [nio-8080-exec-2] oswshandler.SimpleUrlHandlerMapping: сопоставление шаблонов для запроса [/ WEB-INF / jsp / login.jsp]: [/ **]

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Пожалуйста, убедитесь, что все классы находятся в корневом пакете.Я провел часы в этой ошибке.Мое приложение работало на самоопределяемом порте 8085, но во время подключения к этому порту ответа не было.я не получаю ошибку в консоли.после реструктуризации пакета под корневым пакетом.Ошибка устранена !!!!!!!!!!

Счастливого обучения:)

С уважением, Вики Шарма

0 голосов
/ 23 сентября 2018

Пожалуйста, определите метод в вашем контроллере: Вы можете определить @RequestMapping(value = "/", method = RequestMethod.GET), или вы можете напрямую использовать @ GetMapping

@Controller
public class LoginController {

    @GetMapping(path="/")
    public String login() {
        System.out.println("******************logging************************");
        return "login";
    }

}

, в вашем pom могут быть еще некоторые конфликты, например, нет необходимости добавлять зависимость tomcat в качестве егоуже встроенный, поэтому ниже можно удалить.

 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

Чтобы включить поддержку JSP, добавьте зависимость от tomcat-embed-jasper.

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

и после2.x релиз не нужно расширять SpringBootServletInitializer, поэтому ниже должно быть достаточно для начала.

@SpringBootApplication
public class WebApplication{


    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...