springboot项目 部署tomcat

来源:互联网 发布:手机暖宝宝软件 编辑:程序博客网 时间:2024/05/20 19:33

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库   

      

<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 就可以啦

0 0