springboot项目 部署tomcat

springboot  默认以jar打包【所以对jsp支持不是特别好】,以war包打包springboot项目

         步骤一: 将maven中的jar----修改为war 然后将war包 丢在tomcat的webapps目录下 windows下启动tomcat报错

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[
/report]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
        at org.apache.tomcat.websocket.server.WsServerContainer.<init>(WsServerContainer.java:150)
        at org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131)
        at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5573)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        ... 10 more

  错误原因是:springboot默认servlet容器是基于tomcat8的 而我本地是tomcat7的 【可以在打好的war包里面 看到tomcat8的相关jar包】

步骤二:解决方式

1、用springboot内置的tomcat库 并制定我们要采用的tomcat版本

<properties>
    <tomcat.version>要采用的tomcat版本</tomcat.version>
</properties>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-juli</artifactId>
    <version>${tomcat.version}</version>
</dependency

2、不采用springboot内置的tomcat库   

      

扫描二维码关注公众号,回复: 2182281 查看本文章
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

      在打war包的时候 告诉spring-boot tomcat相关的jar包用外部的 不要打进去

步骤三:

 


打包好的war 放到tomcat的webapps下面 启动 方位http://localhost:[端口号]/[打包项目名]/url 就可以啦

猜你喜欢

转载自blog.csdn.net/u011220648/article/details/70752692
今日推荐