Tomcat не может вести войну - PullRequest
0 голосов
/ 10 октября 2018

Я скачал демонстрационное веб-приложение с https://start.spring.io/ (проект gradle kotlin).Добавлены 2 контроллера для «/» и «/ test» только для проверки, все ли в порядке.Вот код:

@Controller
class IndexController {

@ResponseBody
@GetMapping("/")
fun main() : String {
    return "Hello World"
}



@Controller
class TestController {

@ResponseBody
@GetMapping("/test")
fun main() : String {
    return "test"
}

Затем я добавил плагин войны в gradle

apply plugin: 'war'

Затем я печатаю на терминал

gradlew build

и в сборке / библиотеках найдены.war файлЯ развернул его, чтобы найти Tomcat, но

http://localhost:8080/demo-0.0.1-SNAPSHOT/
http://localhost:8080/demo-0.0.1-SNAPSHOT/test

отвечает с ошибкой 404.

В IDEA я могу легко запустить свое приложение и увидеть Hello World и проверить.

Anyидеи?

1 Ответ

0 голосов
/ 10 октября 2018

[JAR-файл]

У вас нет импорта в контроллере.

поставьте ниже импорта в вашем контроллере.

package com.example.demo

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

теперь удалитеподключаемый модуль apply plugin: 'war' и сборка проекта с использованием gradlew build

создадут файл jar внутри app_name \ build \ libs

, откройте это местоположение в командной строке и запуститеКоманда ниже.

java -jar <jar_file_name>.java

открыть приложение, используя следующий URL.

http://localhost:8080

[WAR-файл]

расширение SpringBootServletInitializer, как показано ниже

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
class DemoApplication : SpringBootServletInitializer()

поместите плагин apply plugin: 'war' и соберите проект, используя gradlew build

, теперь внутри app_name \ build \ libs , он создаст файл войны.

разверните эту войну на сервере Tomcat и получите доступ по следующему URL:

http://localhost:8080/demo-0.0.1-SNAPSHOT/
...