Задать вопрос
@Evgeny_13

Не могу задеплоить war на внешний сервер на Tomcat?

Добрый день!

Пишу свой проект на spring. Взял пример из документации Spring

После чего собираю war Gradle build

Cтруктура моего проекта такая же как и в примере

Вот мой мой Gradle файл:
buildscript {
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
	}
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
	baseName = 'gs-serving-web-content'
	version =  '0.1.0'
}

repositories {
	mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
	compile("org.springframework.boot:spring-boot-starter-web")
	compile("org.springframework.boot:spring-boot-starter-thymeleaf")
	compile("org.springframework.boot:spring-boot-devtools")
	testCompile("junit:junit")
}


Вот мой контроллер:
package com.pathfinderPrj.pathfinderPrj;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class StartController {
    @GetMapping("/greeting")
    public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }
}


После пытаюсь развернуть мою war на внешнем и локальном Tomcat и получаю ошибку:
HTTP Status 404 – Not Found

Type Status Report

Message /pathfinderPrj_war_exploded/

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.


Может кто сталкивался в с такой проблемой, почему Tomcat не видит моей htnl страницы? Может нужно как-то изменить путь, где лежат html?

Заранее огромное спасибо!
  • Вопрос задан
  • 2026 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Странно, только вчера я ответил на ваш вопрос... И он почему-то был удален и вы заново разместили этот же вопрос...
1) Уточните пожалуйста вы собираете war или используете exploded war? Корректно ли вы собираете war в Intellij IDEA? Правда, не всегда она корректно собирается автоматически, если выбирать "From modules and dependencies"...
2) Учли ли вы context path на удаленном tomcate? Например, если вы запускаете ваше приложение на локалке так: localhost:8080/greening то с учетом context path на удаленке будет выглядеть примерно, так localhost:8080/pathfinderPrj_war_exploded/greeting
В application properties пропишите - server.servlet.context-path=/YoutContextPathHere
3) Еще вчера я писал про то, что вы используете шаблонизатор thymeleaf. Соответственно, место хардкодинга ссылок типа href="/greeting"используйте его синтаксис th:href="@{/greeting}"
Также, на будущее... если ошибка на серверной стороне будет, то можете в любое время поднять логи TomCat
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы