1

我在 EJB 和 JBoss 方面有一些经验,并且了解 Web 服务的基础知识,但我是 Spring 新手。

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

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

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

谢谢,卡杜塔

4

1 回答 1

0

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

我必须执行三个步骤才能使其运行:

  • 在 pom.xml 中将包装更改为 war。
  • 注释掉 pom.xml 中 spring-boot-maven-plugin 的声明。
  • 将 Application 类更改为从 SpringBootServletInitializer 继承并覆盖方法配置。这是在 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);
    }
    }
于 2015-07-28T06:52:26.670 回答