我已经创建了Spring Boot Web应用程序,但是无法在tomcat上部署Spring Boot Web应用程序WAR文件,并且能够将其作为Java应用程序运行。如何在tomcat上将Spring Boot应用程序作为Web服务运行 我正在使用以下代码。如果可以在tomcat plz上运行,请帮助我使用批注而不使用web.xml和web.xml。
@SpringBootApplication public class Application extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
以下代码用于休息控制器
@RestController public class HelloWorld{ @RequestMapping(value = "/hello", method = RequestMethod.GET) public ResponseEntity<String> get() { return new ResponseEntity<String>("Hello World", HttpStatus.OK); } }
我正在使用Pom.xml之后
<groupId>org.springframework</groupId> <artifactId>web-service</artifactId> <version>0.1.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.0.RELEASE</version> </parent> <dependencies> <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> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> </dependency> </dependencies> <properties> <java.version>1.6</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-releases</id> <url>https://repo.spring.io/libs-release</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-releases</id> <url>https://repo.spring.io/libs-release</url> </pluginRepository> </pluginRepositories> <packaging>war</packaging>
这是有关如何将Spring Boot应用程序部署为war文件的两个很好的文档。
Spring Boot
war
你可以按照此spring启动howto-traditional-deployment 文档
根据此文档的步骤-
你将应用程序的主类更新为extend SpringBootServletInitializer。
SpringBootServletInitializer
下一步是更新构建配置,以便你的项目生成war文件而不是jar文件。 <packaging>war</packaging>
<packaging>war</packaging>
将嵌入式Servlet容器的相关性标记为已提供。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
还有另一种方法
请参阅此spring io文档,其中概述了如何将spring boot app部署到应用程序服务器。
Steps
将jar包装更改为war。
jar
spring-boot-maven-plugin在你的插件中注释掉插件的声明pom.xml
spring-boot-maven-plugin
通过扩展SpringBootServletInitializer和覆盖configure方法将Web入口点添加到你的应用程序中
configure
删除spring-boot-starter-tomcat dependency和修改你的spring-boot-starter-web依赖项
spring-boot-starter-tomcat dependency
spring-boot-starter-web
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
在中pom.xml,删除spring-beans和spring-webmvc依赖项。该spring-boot-starter-web依存度将包括那些依赖条件。
pom.xml
spring-beans
spring-webmvc