SpringBoot2.0+版本部署到tomcat7报错的解决办法

报错信息如下


 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.4.RELEASE)

2019-05-09 17:18:51.171  INFO 8092 --- [ost-startStop-1] c.cgzx.certificates.Ser
vletInitializer   : Starting ServletInitializer on Msab324nxezj with PID 8092 (D
:\software\apache-tomcat-7.0.88\webapps\certificates\WEB-INF\classes started by
ghj in D:\software\apache-tomcat-7.0.88\bin)
2019-05-09 17:18:51.177  INFO 8092 --- [ost-startStop-1] c.cgzx.certificates.Ser
vletInitializer   : No active profile set, falling back to default profiles: def
ault
2019-05-09 17:18:52.827  WARN 8092 --- [ost-startStop-1] ConfigServletWebServerA
pplicationContext : Exception encountered during context initialization - cancel
ling refresh attempt: org.springframework.beans.factory.BeanCreationException: E
rror creating bean with name 'defaultValidator' defined in class path resource [
org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.cl
ass]: Bean instantiation via factory method failed; nested exception is org.spri
ngframework.beans.BeanInstantiationException: Failed to instantiate [org.springf
ramework.validation.beanvalidation.LocalValidatorFactoryBean]: Factory method 'd
efaultValidator' threw exception; nested exception is java.lang.NoClassDefFoundE
rror: javax/el/ELManager
2019-05-09 17:18:52.843 ERROR 8092 --- [ost-startStop-1] o.s.boot.SpringApplicat
ion               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name 'defaultValidator' defined in class path resource [org/springframework/bo
ot/autoconfigure/validation/ValidationAutoConfiguration.class]: Bean instantiati
on via factory method failed; nested exception is org.springframework.beans.Bean
InstantiationException: Failed to instantiate [org.springframework.validation.be
anvalidation.LocalValidatorFactoryBean]: Factory method 'defaultValidator' threw
 exception; nested exception is java.lang.NoClassDefFoundError: javax/el/ELManag
er
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iate(ConstructorResolver.java:627) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEAS
E]
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iateUsingFactoryMethod(ConstructorResolver.java:456) ~[spring-beans-5.1.6.RELEAS
E.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:13
21) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) ~[sprin
g-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans
-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5
.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$
doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6
.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.6.RELEA
SE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:318) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]

        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:199) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
preInstantiateSingletons(DefaultListableBeanFactory.java:849) ~[spring-beans-5.1
.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finish
BeanFactoryInitialization(AbstractApplicationContext.java:877) ~[spring-context-
5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:549) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.
RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicat
ionContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.
1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.
java:775) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringAppli
cation.java:397) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java
:316) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.run(SpringBootServletInitializer.java:157) [spring-boot-2.1.4.RELEASE.jar:2
.1.4.RELEASE]
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.createRootApplicationContext(SpringBootServletInitializer.java:137) [spring
-boot-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.onStartup(SpringBootServletInitializer.java:91) [spring-boot-2.1.4.RELEASE.
jar:2.1.4.RELEASE]
        at org.springframework.web.SpringServletContainerInitializer.onStartup(S
pringServletContainerInitializer.java:171) [spring-web-5.1.6.RELEASE.jar:5.1.6.R
ELEASE]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5669) [catalina.jar:7.0.88]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
[catalina.jar:7.0.88]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:1017) [catalina.jar:7.0.88]
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:99
3) [catalina.jar:7.0.88]
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
 [catalina.jar:7.0.88]
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127
) [catalina.jar:7.0.88]
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
2021) [catalina.jar:7.0.88]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1) [na:1.8.0_131]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_13
1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142) [na:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617) [na:1.8.0_131]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to insta
ntiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]
: Factory method 'defaultValidator' threw exception; nested exception is java.la
ng.NoClassDefFoundError: javax/el/ELManager
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy
.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.1.6.RELEASE.
jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iate(ConstructorResolver.java:622) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEAS
E]
        ... 32 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInt
erpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:88) ~[hi
bernate-validator-6.0.16.Final.jar:6.0.16.Final]
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInt
erpolator.<init>(ResourceBundleMessageInterpolator.java:47) ~[hibernate-validato
r-6.0.16.Final.jar:6.0.16.Final]
        at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultM
essageInterpolator(ConfigurationImpl.java:474) ~[hibernate-validator-6.0.16.Fina
l.jar:6.0.16.Final]
        at org.springframework.boot.validation.MessageInterpolatorFactory.getObj
ect(MessageInterpolatorFactory.java:54) ~[spring-boot-2.1.4.RELEASE.jar:2.1.4.RE
LEASE]
        at org.springframework.boot.autoconfigure.validation.ValidationAutoConfi
guration.defaultValidator(ValidationAutoConfiguration.java:58) ~[spring-boot-aut
oconfigure-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.
0_131]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62) ~[na:1.8.0_131]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy
.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.1.6.RELEASE.
jar:5.1.6.RELEASE]
        ... 33 common frames omitted

五月 09, 2019 5:18:52 下午 org.apache.catalina.core.ContainerBase addChildIntern
al
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngin
e[Catalina].StandardHost[localhost].StandardContext[/certificates]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:1017)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:99
3)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127
)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
2021)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        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:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
ng bean with name 'defaultValidator' defined in class path resource [org/springf
ramework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Bean
instantiation via factory method failed; nested exception is org.springframework
.beans.BeanInstantiationException: Failed to instantiate [org.springframework.va
lidation.beanvalidation.LocalValidatorFactoryBean]: Factory method 'defaultValid
ator' threw exception; nested exception is java.lang.NoClassDefFoundError: javax
/el/ELManager
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iate(ConstructorResolver.java:627)
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iateUsingFactoryMethod(ConstructorResolver.java:456)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:13
21)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:515)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$
doGetBean$0(AbstractBeanFactory.java:320)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:318)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:199)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
preInstantiateSingletons(DefaultListableBeanFactory.java:849)
        at org.springframework.context.support.AbstractApplicationContext.finish
BeanFactoryInitialization(AbstractApplicationContext.java:877)
        at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:549)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicat
ionContext.refresh(ServletWebServerApplicationContext.java:142)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.
java:775)
        at org.springframework.boot.SpringApplication.refreshContext(SpringAppli
cation.java:397)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java
:316)
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.run(SpringBootServletInitializer.java:157)
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.createRootApplicationContext(SpringBootServletInitializer.java:137)
        at org.springframework.boot.web.servlet.support.SpringBootServletInitial
izer.onStartup(SpringBootServletInitializer.java:91)
        at org.springframework.web.SpringServletContainerInitializer.onStartup(S
pringServletContainerInitializer.java:171)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5669)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 10 more
Caused by: org.springframework.beans.BeanInstantiationException: Failed to insta
ntiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]
: Factory method 'defaultValidator' threw exception; nested exception is java.la
ng.NoClassDefFoundError: javax/el/ELManager
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy
.instantiate(SimpleInstantiationStrategy.java:185)
        at org.springframework.beans.factory.support.ConstructorResolver.instant
iate(ConstructorResolver.java:622)
        ... 32 more
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInt
erpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:88)
        at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInt
erpolator.<init>(ResourceBundleMessageInterpolator.java:47)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultM
essageInterpolator(ConfigurationImpl.java:474)
        at org.springframework.boot.validation.MessageInterpolatorFactory.getObj
ect(MessageInterpolatorFactory.java:54)
        at org.springframework.boot.autoconfigure.validation.ValidationAutoConfi
guration.defaultValidator(ValidationAutoConfiguration.java:58)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy
.instantiate(SimpleInstantiationStrategy.java:154)
        ... 33 more

五月 09, 2019 5:18:52 下午 org.apache.catalina.startup.HostConfig deployWAR
严重: Error deploying web application archive D:\software\apache-tomcat-7.0.88\w
ebapps\certificates.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catal
ina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
dardHost[localhost].StandardContext[/certificates]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:1021)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:99
3)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127
)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
2021)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        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:748)

五月 09, 2019 5:18:52 下午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deployment of web application archive D:\software\apache-tomcat-7.0.88\web
apps\certificates.war has finished in 4,259 ms
五月 09, 2019 5:18:52 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
五月 09, 2019 5:18:52 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
五月 09, 2019 5:18:52 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 4341 ms

解决办法一

网上查了很多资料,都没有解决问题,解决问题的思路:

  • 先部署别的war包进行测试,发现tomcat可以正常启动并访问,排除了tomcat的问题,
  • 项目能在idea上运行并访问,说明项目本身也没有问题,
  • 那么可能出现问题的环节就是打war包和项目配置问题,因为别的项目打成war包目的步骤都是一样的,并且都能启动成功,说以也不是打包的问题,
  • 后来通过对比之前的项目springboot的版本和当前版本发现了差异,之前在tomcat7上成功运行的项目springboot版本为1.5.4,
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
  • 而当前的springboot版本为2.1.4版本;
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

将pom.xml中的版本改为1.5.9,然后重新更新下maven依赖即可成功启动

补充解决办法二

  • 在pom.xml文件中添加以下依赖
<dependency>
	 <groupId>org.hibernate</groupId>
	 <artifactId>hibernate-validator</artifactId>
	 <version>5.2.2.Final</version> 
</dependency>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值