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.(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版本


    要采用的tomcat版本


    org.apache.tomcat
    tomcat-juli
    ${tomcat.version}

2、不采用springboot内置的tomcat库   

      


    org.springframework.boot
    spring-boot-starter-tomcat
    provided

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

步骤三:

springboot项目 部署tomcat_第1张图片

 

springboot项目 部署tomcat_第2张图片


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

你可能感兴趣的:(java)