Простой проект Gradle с плагином Tomcat не работает

У меня следующая проблема: я создал простой проект Gradle с именем «spring» с плагином com.bmuschko.tomcat. Но когда я запускаю сборку Gradle и задачи tomcatRun и ввожу http://локальный:8080/весна, я получаю ошибку 404. Конечно, я не получаю сообщений об ошибках во время сборки и запуска сервера. Есть build.gradle:

apply plugin: 'com.bmuschko.tomcat'
apply plugin: 'java'
apply plugin: 'war'

group 'training'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    def tomcatVersion = '9.0.17'
    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
            "org.apache.tomcat.embed:tomcat-embed-logging-juli:9.0.0.M6",
            "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}

tomcat {
    httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
    ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
}

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.bmuschko:gradle-tomcat-plugin:2.5'
    }
}

У меня также есть один файл jsp с именем hello.jsp, вставленный src/main/webapp:

<!DOCTYPE html>
<html>
<head>

<meta charset = "UTF-8">

<title>Hello Gradle Web App</title>
</head>
<body>

<jsp:useBean id = "greeting" class = "test.Test"/>

<h3>${greeting.hello}</h3>

</body>
</html>

и Test.java файл вставлен src/main/java/test:

package test;

public class Test {
    public String getHello() {
        return "Hello Spring!";
    }
}

Как видите, сервер успешно запускается:

17:46:12: Executing tasks 'build tomcatRun'...

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :war UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE
> Task :tomcatRun
Started Tomcat Server
The Server is running at http://localhost:8080/spring

Как называется файл JSP?

thokuest 08.04.2019 18:06

@thokuest это "hello.jsp"

wojtek1902 08.04.2019 22:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
1 234
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как указано в комментариях, ваш JSP-файл называется hello.jsp.

В документации Tomcat (conf/web.xml) говорится следующее:

==================== Default Welcome File List =====================

When a request URI refers to a directory, the default servlet looks for a "welcome file" within that directory and, if present, to the corresponding resource URI for display. If no welcome files are present, the default servlet either serves a directory listing (see default servlet configuration on how to customize) or returns a 404 status, depending on the value of the listings setting.

Файлы приветствия по умолчанию:

  • index.html
  • index.htm и
  • index.jsp

Так что это значит?

Когда вы указываете в браузере http://локальный:8080/весна, в URL-адресе запроса нет конкретной страницы. Tomcat, как и другие веб-серверы, по-прежнему пытаются доставить страницу, чтобы браузер мог что-то отобразить. По умолчанию, если в URL-адресе не указана страница, доставляется домашняя страница по умолчанию. Поскольку ваш файл называется hello.jsp, он не считается файлом приветствия, поэтому Tomcat выдает ошибку 404.

Вы можете решить проблему,

При этом проблема не в плагине com.bmuschko.tomcat и не в вашем файле сборки.

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