gpt4 book ai didi

java - Intellij spring boot 应用程序不适用于 tomcat

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:30 26 4
gpt4 key购买 nike

这是我的类(class)

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@Configuration
@ComponentScan
@EnableAutoConfiguration
@SpringBootApplication
public class TomcatIcınApplication {

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

@RestController
class GreetingController {

@RequestMapping("/hello/hi")
String hello( ) {
return "Hello, xx!";
}
}

当我运行应用程序并打开 localhost:8080/hello/hi 时,我可以看到输出。但是从 Edit Configurations 中,当我在端口 8081 上添加 tomcat 服务器作为 localhost:8081/hello 并这次运行 tomcat 时,它会调用应用程序和打开页面,但它是空的。

为什么我看不到我的输出?

最佳答案

当您简单地运行应用程序时,Spring Boot 将使用其嵌入式 tomcat 服务器来运行您的应用程序。如果您计划使用另一个独立的 tomcat 服务器来部署您的启动应用程序,我不推荐,首先您应该告诉您的构建工具将您的应用程序打包为 war 不是 jar。然后修改您的主启动应用程序入口点以支持它,最后通过使用 Intellij 或手动将您的 war 文件部署到您的 tomcat 服务器。

生成可部署 war 文件的第一步是提供 SpringBootServletInitializer 子类并覆盖其 configure 方法。在你的情况下:

@SpringBootApplication
public class TomcatIcınApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(TomcatIcınApplication.class);
}

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

然后告诉您的构建工具将您的应用程序打包为war,而不是jar。如果您使用的是 Maven,只需添加:

<packaging>war</packaging>

最后将 spring-boot-starter-tomcat 标记为 provided:

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

您阅读了有关 spring boot 的更多信息传统部署 here .

关于java - Intellij spring boot 应用程序不适用于 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35830168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com