小编phi*_*s26的帖子

将Spring Boot部署到Tomcat

所以我是Spring的新手 - 所以我想我会尝试Spring Boot

我正在使用Maven构建 - 我设置了一个视图请求,当我运行它时,"App"看起来它启动了tomcat本身并且我在默认的8080端口有一个服务,所以当我打电话时localhost:8080/service它都很好.

但是,当我尝试将其打包为WAR以部署到服务器时,它不起作用

所以我想我会回到基础并将其部署到我的tomcat服务器本地,看看会发生什么

所以首先没有任何事情发生 - 404 - 做了一些谷歌搜索发现我需要包括这样的网络入口点 - 这是我的主要课程

@ComponentScan
@EnableAutoConfiguration
public class App extends SpringBootServletInitializer
{

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

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

    private static Class<App> appClass = App.class;
}
Run Code Online (Sandbox Code Playgroud)

所以它看起来像是有效的,在控制台我可以看到红色catalina启动文本,然后我看到Spring启动启动(我之前没有看到)

然而,当我尝试拨打该服务时,localhost:8080/service 我仍然得到404

当我将它作为"App"运行时,它会起作用

我需要做些什么吗?我只是创造战争

  1. 将pom xml包类型更改为war
  2. 包含上面代码段中的覆盖
  3. 作为战争出口

我解压了WAR并且它看起来很好 - 有一个WEB-INF和一组依赖项等.

任何帮助都会很好 - 因为在将Spring引导应用程序部署为WAR时,任何人都有类似的问题吗?

***UPDATE****

现在我可以让我的战争在我的本地Tomcat 7服务器上正确部署 - 但是当我尝试部署到外部托管的Tomcat容器时,我得到了

at       org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat war spring-boot

29
推荐指数
2
解决办法
5万
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1

tomcat ×1

war ×1