我有一个Spring启动应用程序,并希望在Eclipse中将其作为服务器应用程序运行。 因此,该应用程序将被识别为Tomcat Web应用程序,并且可以添加我更新方面:
当我运行网络应用程序时,我找不到其他服务。在春季启动发布之前,Spring启动应用程序包含与spring应用程序不同的文件夹结构。可以从eclipse配置的tomcat运行spring boot应用程序吗?此外,在春季启动之前,应用程序的控制器部分需要指定。我是否需要使用这些设置更新我的spring boot应用程序才能从Eclipse tomcat运行?
我不想创建战争,然后将其复制到tomcat的webapps文件夹。
更新:在Eclipse tomcat容器中运行此应用程序的原因是我有其他非Spring启动应用程序,我的新Spring启动应用程序将依赖它。
答案 0 :(得分:14)
检查你的pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
然后检查您的主应用类:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
然后配置Project Facets(就像你已经做过的那样):
完成!
答案 1 :(得分:1)
eclipse-wtp
和war
SpringBootServletInitializer
Application
为了在tomcat上运行spring boot应用程序,通常生成的工件必须是war
应用程序。
为了让它在Eclipse内部的tomcat上运行,你必须使用eclipse-wtp
gradle插件使用WTP-Project(Web工具平台,即动态Web模块)。
为了在Tomcat启动时启动Spring Boot应用程序上下文,必须扩展SpringBootServletInitializer
。
Spring提供了Getting Started Tutorial如何使用Spring Boot构建REST Web服务。我增强了项目以使用Tomcat和Eclipse:
示例项目:
git clone https://github.com/spring-guides/gs-rest-service.git
将complete/
子文件夹导入为gradle项目。
build.gradle
除去
apply plugin: 'java'
apply plugin: 'eclipse'
添加
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
src/main/java/hello/Application.java
添加SpringBootServletInitializer
public class Application extends SpringBootServletInitializer {
...
}
这样做我可以将示例项目部署到在eclipse中配置的Tomcat服务器并启动服务器。网址为:http://localhost:8080/complete/greeting?name=User
答案 2 :(得分:0)
对于那些无法看到“部署程序集”选项的人,在.project文件中添加以下属性将启用部署程序集选项。
org.eclipse.wst.common.modulecore.ModuleCoreNature
在为我的项目定义打包结构之后,我能够在Tomcat服务器上运行该应用程序,而无需手动复制webapps目录中的war文件。
答案 3 :(得分:0)
只需在spring boot的主类中添加此注释。
(func3 <=< func2 <=< func1) x
在@SpringBootApplication
@Configuration
@ComponentScan(value={"packages name to scan"})
文件中添加依赖项。
答案 4 :(得分:0)
遵循这两个简单步骤,一切顺利!
第1步。在pom.xml文件中将包装格式更改为war而不是jar。
**<packaging>war</packaging>**
步骤2。右键单击您的项目,然后执行Maven->更新项目。
执行完这些步骤后,您将在尝试运行项目时找到“在服务器上运行”选项。