spring工具套件无法在tomcat

时间:2015-07-19 20:28:41

标签: spring tomcat deployment suite

我有一些EJB和JBoss的经验,并且知道有关Webservices的基础知识,但我是Spring的新手。

所以我尝试在没有任何更改的情况下部署示例Spring WS项目gs-rest-service-complete。它在Spring Boot上运行,但我无法在外部Tomcat服务器上部署和访问它。

这就是我所做的:我安装了Spring Tool Suite版本:3.6.4.RELEASE和 Apache Tomcat 8.0.24并将Tomcat定义为Spring Tool Suite中的新服务器。 它似乎工作,因为我可以部署(和访问)示例Spring MVC项目,我可以在Tomcat上部署另一个(而不是Spring示例)Webservice。

但是我无法部署gs-rest-service-complete项目。我将pom.xml中的包装更改为'war',但它没有帮助。任何提示我能做什么?

谢谢,caduta

1 个答案:

答案 0 :(得分:0)

最后,我在本网站的底部找到了答案: https://spring.io/blog/2014/03/07/deploying-spring-boot-applications

我必须做三个步骤才能让它运行:

  • 在pom.xml中将包装更改为war。
  • 在pom.xml中注释掉spring-boot-maven-plugin的声明。
  • 将Application类更改为继承自SpringBootServletInitializer并覆盖方法configure。这是在tomcat中注册应用程序所必需的。

现在Application类看起来像这样:

    package hello;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
    import org.springframework.boot.builder.SpringApplicationBuilder; 
    import org.springframework.boot.context.web.SpringBootServletInitializer;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;

    @Configuration
    @ComponentScan
    @EnableAutoConfiguration
    public class Application extends SpringBootServletInitializer {


    private static Class<Application> applicationClass = Application.class;

    public static void main(String[] args) {
        SpringApplication.run(applicationClass, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(applicationClass);
    }
    }