开发环境使用jdk1.8.0_60,把springboot 项目打成war包后,

部署到apache-tomcat-7.0.68时报错如下,换成apache-tomcat-8.0.9解决
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my-springboot-web-0.0.1]]
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:1091)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1980)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
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:149)
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
六月 22, 2017 12:19:15 上午 org.apache.catalina.startup.HostConfig deployWAR
严重: Error deploying web application archive E:\Data\apache-tomcat-7.0.68\webapps\my-springboot-web-0.0.1.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my-springboot-web-0.0.1]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:903)
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:1091)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1980)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
另外springboot项目打成war包部署到tomcat时需要改变启动方式,否则运行tomcat时war包只会解压,但是加载不了
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
@SpringBootApplication //- springboot项目,并配置扫描路径
@EnableAutoConfiguration //- springboot自动配置,这个注解可以根据你依赖的包自动生成相关配置
public class StartApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(StartApp.class, args);
}
/**
* 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(StartApp.class);
}
部署到外部tomcat时,注意pom.xml配置,否则会报错
<!-- 这里指定打war包的时不再需要tomcat相关的包,但是本地运行时必须注释掉,否则会报错 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>1.3.5.RELEASE</version>
<scope>provided</scope>
</dependency>
**报错信息:** org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) at com.StartApp.main(StartApp.java:13) Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java:37) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:158) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:160) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) ... 8 more Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 more
springboot项目使用jsp页面时会添加以下依赖,但是在外部tomcat运行时会报错
因为tomcat /lib下自带的jar包(jasper.jar,jsp-api.jar等)会跟war包项目路径/lib下的解析jsp的jar包冲突
删除项目路径/lib下的相关jar包即可,如下图
<!-- 添加jsp支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.0.33</version>
</dependency>
**报错信息:** [ERROR][2017-06-22 00:48:28,303][org.springframework.boot.context.web.ErrorPageFilter]Forwarding to error page from request [/excel] due to exception [java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/jsp/excel_jsp, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/apache/jasper/runtime/InstanceManagerFactory, have different Class objects for the type org/apache/tomcat/InstanceManager used in the signature] javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/jsp/excel_jsp, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/apache/jasper/runtime/InstanceManagerFactory, have different Class objects for the type org/apache/tomcat/InstanceManager used in the signature
默认配置下就可以通过http://localhost:8080/war包名/@RequestMapping.value访问了, 另外部署到tomcat后静态资源(resources下的js文件)访问不到的问题还没解决。。。
以上所述是小编给大家介绍的springboot项目打成war包部署到tomcat遇到的一些问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# springboot
# war包部署
# spring
# boot
# tomcat
# springboot与mybatis整合实例详解(完美融合)
# 在SpringBoot下读取自定义properties配置文件的方法
# Spring Boot 日志配置方法(超详细)
# SpringBoot + Spring Security 基本使用及个性化登录配置详解
# 解决springboot MultipartFile文件上传遇到的问题
# springboot @ConditionalOnMissingBean注解的作用详解
# Springboot Thymeleaf实现HTML属性设置
# springboot如何读取配置文件(application.yml)中的属性值
# 详解eclipse下创建第一个spring boot项目
# Spring Boot 4.0对于Java开发的影响和前景
# 报错
# 则会
# 小编
# 时需
# 还没
# 在此
# 只会
# 给大家
# 自带
# 可以根据
# 所述
# 给我留言
# 自动生成
# 感谢大家
# 如下图
# 就可以
# 会跟
# 疑问请
# 有任何
# 加载
相关文章:
建站之星如何优化SEO以实现高效排名?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何通过.red域名打造高辨识度品牌网站?
如何通过二级域名建站提升品牌影响力?
完全自定义免费建站平台:主题模板在线生成一站式服务
公司网站设计制作厂家,怎么创建自己的一个网站?
网页设计与网站制作内容,怎样注册网站?
如何高效完成自助建站业务培训?
电商网站制作公司有哪些,1688网是什么意思?
,sp开头的版面叫什么?
建站主机与虚拟主机有何区别?如何选择最优方案?
如何通过网站建站时间优化SEO与用户体验?
开源网站制作软件,开源网站什么意思?
Python lxml的etree和ElementTree有什么区别
建站之星如何一键生成手机站?
建站OpenVZ教程与优化策略:配置指南与性能提升
制作公司内部网站有哪些,内网如何建网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何零基础开发自助建站系统?完整教程解析
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
建站VPS能否同时实现高效与安全翻墙?
ppt制作免费网站有哪些,ppt模板免费下载网站?
如何选择建站程序?包含哪些必备功能与类型?
如何在VPS电脑上快速搭建网站?
建站上传速度慢?如何优化加速网站加载效率?
宝塔新建站点为何无法访问?如何排查?
如何有效防御Web建站篡改攻击?
如何在阿里云虚拟服务器快速搭建网站?
如何在云指建站中生成FTP站点?
建站主机与服务器功能差异如何区分?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何自定义建站之星网站的导航菜单样式?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
黑客入侵网站服务器的常见手法有哪些?
如何通过VPS建站实现广告与增值服务盈利?
魔方云NAT建站如何实现端口转发?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
网站网页制作专业公司,怎样制作自己的网页?
孙琪峥织梦建站教程如何优化数据库安全?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
开封网站制作公司,网络用语开封是什么意思?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在橙子建站中快速调整背景颜色?
如何配置WinSCP新建站点的密钥验证步骤?
如何快速生成凡客建站的专业级图册?
如何用PHP快速搭建CMS系统?
建站之星如何防范黑客攻击与数据泄露?
如何通过FTP空间快速搭建安全高效网站?
免费视频制作网站,更新又快又好的免费电影网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。