[英]Is there any dependency between Spring and Apache Tomcat Jar
以下是我如何在应用程序中出错的时间表
当我停止应用程序时,当我升级到tomcat 7.0.42时,我会收到1000个verifyerrors(每个destroyBean都存在单独的错误)。
以下是堆栈跟踪:
java.lang.VerifyError: (class: org/springframework/orm/jpa/EntityManagerFactoryUtils, method: convertJpaAccessExceptionIfPossible signature: (Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;) Wrong return type in function at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessBeforeDestruction(PersistenceAnnotationBeanPostProcessor.java:357) at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:193) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:498) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:474) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:509) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:474) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:442) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1066) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1040) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:988) at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:556) at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4980) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5626) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
可能的原因: 修复了EntityManagerFactoryUtils的“ convertJpaAccessException”总是返回而不是抛出DataAccessExceptions的问题。此行在Spring 2.5.6的ChangeLog中
但是我的应用程序可以在Spring 3.1.1和tomcat 7.0.27上正常工作,但是在升级到tomcat 7.0.42时抛出此错误
AFAIK,Tomcat不依赖于Spring,Spring不依赖于Tomcat。 两者都不在任何版本中。
我怀疑在“使用相同的tomcat(7.0.27)升级到Spring 3.1.1之后”的应用程序的中间版本中,您要么没有触发该代码运行。 请注意,这是在关闭Web应用程序时运行的代码中发生的。 如果您从未尝试过在应用程序的中间版本中进行干净关闭,则不会在该Bean上调用该postProcessBeanBeforeDestruction
方法,也不会出现问题。
我的猜测是真正的问题是由Spring JAR文件的混合版本引起的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.