【问题标题】:Tomcat cant run warTomcat无法运行战争
【发布时间】:2018-10-10 06:51:45
【问题描述】:

我从https://start.spring.io/(gradle kotlin 项目)下载了演示 webapp。 为“/”和“/test”添加了 2 个控制器,只是为了测试一切是否正常。 代码如下:

@Controller
class IndexController {

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



@Controller
class TestController {

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

然后我将war插件添加到gradle

apply plugin: 'war'

然后我打印到终端

gradlew build

并在 build/libs 中找到 .war 文件。 我部署它来定位 Tomcat,但是

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

以 404 错误响应。

在 IDEA 中,我可以轻松启动我的应用并查看 Hello World 并进行测试。

有什么想法吗?

【问题讨论】:

    标签: java spring tomcat kotlin war


    【解决方案1】:

    [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 构建项目

    它会在 app_name\build\libs

    中创建一个 jar 文件

    在命令提示符下打开此位置并在命令下运行。

    java -jar <jar_file_name>.java
    

    使用以下网址打开应用程序。

    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 中,它将创建一个 war 文件。

    将此war部署到tomcat服务器并使用以下URL访问:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多