java - 应用程序仅在 Tomcat 重启后工作

标签 java spring tomcat

我有一个奇怪的问题。我部署了一个 web 应用程序...当我启动 tomcat 时,web 应用程序出现没有错误。但是如果我在 tomcat 管理器中停止/启动 web 应用程序,我会收到一个 classnotfound 异常...

Tomcat 启动日志:

2015-12-13 22:13:03 Commons Daemon procrun stdout initialized
2015-12-13 22:13:16,466 | INFO  | localhost-startStop-1 | o.s.w.c.ContextLoader | Root WebApplicationContext: initialization started
2015-12-13 22:13:16,761 | INFO  | localhost-startStop-1 | o.s.w.c.s.XmlWebApplicationContext | Refreshing Root WebApplicationContext: startup date [Sun Dec 13 22:13:16 CET 2015]; root of context hierarchy
2015-12-13 22:13:16,911 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/root-context.xml]
2015-12-13 22:13:17,381 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-security.xml]
2015-12-13 22:13:17,441 | INFO  | localhost-startStop-1 | o.s.s.c.SpringSecurityCoreVersion | You are running with Spring Security Core 4.0.1.RELEASE
2015-12-13 22:13:17,455 | INFO  | localhost-startStop-1 | o.s.s.c.SecurityNamespaceHandler | Spring Security 'config' module version is 4.0.1.RELEASE
2015-12-13 22:13:17,965 | INFO  | localhost-startStop-1 | o.s.s.c.h.AuthenticationConfigBuilder | No login page configured. The default internal one will be used. Use the 'login-page' attribute to set the URL of the login page.
2015-12-13 22:13:17,977 | INFO  | localhost-startStop-1 | o.s.s.c.h.HttpSecurityBeanDefinitionParser | Checking sorted filter chain: [Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 200, Root bean: class [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 400, Root bean: class [org.springframework.security.web.header.HeaderWriterFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 500, Root bean: class [org.springframework.security.web.csrf.CsrfFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 600, Root bean: class [org.springframework.security.web.authentication.logout.LogoutFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 700, <org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>, order = 1100, Root bean: class [org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1300, Root bean: class [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1500, Root bean: class [org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1600, Root bean: class [org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1700, Root bean: class [org.springframework.security.web.authentication.AnonymousAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2000, Root bean: class [org.springframework.security.web.session.SessionManagementFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2100, Root bean: class [org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2200, <org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>, order = 2300]
2015-12-13 22:13:18,007 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-jpa.xml]
2015-12-13 22:13:18,865 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-tx.xml]
2015-12-13 22:13:18,920 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-couchdb.xml]
2015-12-13 22:13:18,935 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-mail.xml]
2015-12-13 22:13:18,945 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-jms.xml]
2015-12-13 22:13:20,393 | INFO  | localhost-startStop-1 | o.s.o.j.LocalContainerEntityManagerFactoryBean | Building JPA container EntityManagerFactory for persistence unit 'default'
2015-12-13 22:13:30,764 | INFO  | localhost-startStop-1 | o.s.s.w.DefaultSecurityFilterChain | Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.SecurityContextPersistenceFilter@2b0fabfa, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@70e6913d, org.springframework.security.web.header.HeaderWriterFilter@53ad62dc, org.springframework.security.web.csrf.CsrfFilter@2235eed, org.springframework.security.web.authentication.logout.LogoutFilter@54a56528, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@108e79f8, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@280d42b7, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@3041a56d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4fb21a68, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2c90fbdf, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@6eca0c00, org.springframework.security.web.session.SessionManagementFilter@531db679, org.springframework.security.web.access.ExceptionTranslationFilter@c238728, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2746cb70]
2015-12-13 22:13:31,691 | INFO  | localhost-startStop-1 | o.s.c.s.DefaultLifecycleProcessor | Starting beans in phase 2147483647
2015-12-13 22:13:31,701 | INFO  | localhost-startStop-1 | o.s.w.c.ContextLoader | Root WebApplicationContext: initialization completed in 15225 ms
2015-12-13 22:13:31,751 | INFO  | localhost-startStop-1 | o.s.w.s.DispatcherServlet | FrameworkServlet 'appServlet': initialization started
2015-12-13 22:13:31,756 | INFO  | localhost-startStop-1 | o.s.w.c.s.XmlWebApplicationContext | Refreshing WebApplicationContext for namespace 'appServlet-servlet': startup date [Sun Dec 13 22:13:31 CET 2015]; parent: Root WebApplicationContext
2015-12-13 22:13:31,756 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-servlet-context.xml]
2015-12-13 22:13:32,305 | INFO  | localhost-startStop-1 | o.s.b.f.s.DefaultListableBeanFactory | Overriding bean definition for bean 'businessMaximizerStartup': replacing [Generic bean: class [com.mleitner.businessmaximizer.security.BusinessMaximizerStartup]; scope=singleton; abstract=false; lazyInit=false; autowireMode=1; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\maxi\WEB-INF\classes\com\mleitner\businessmaximizer\security\BusinessMaximizerStartup.class]] with [Generic bean: class [com.mleitner.businessmaximizer.security.BusinessMaximizerStartup]; scope=; abstract=false; lazyInit=false; autowireMode=1; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=init; destroyMethodName=null; defined in ServletContext resource [/WEB-INF/spring/spring-servlet-context.xml]]
2015-12-13 22:13:32,305 | INFO  | localhost-startStop-1 | o.s.s.c.SecurityNamespaceHandler | Spring Security 'config' module version is 4.0.1.RELEASE
2015-12-13 22:13:32,335 | INFO  | localhost-startStop-1 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-rest.xml]
2015-12-13 22:13:33,640 | INFO  | localhost-startStop-1 | c.m.b.s.BusinessMaximizerStartup | BusinessMaximizerStartup init called...
2015-12-13 22:13:33,705 | INFO  | localhost-startStop-1 | c.m.b.s.AuthenticationDefaultSetup | AuthenticationDefaultSetup set up defaultusers...
2015-12-13 22:13:38,054 | INFO  | localhost-startStop-1 | o.s.w.s.m.m.a.RequestMappingHandlerMapping | Mapped <removed, because to big>
2015-12-13 22:13:38,521 | INFO  | localhost-startStop-1 | o.s.w.s.m.m.a.RequestMappingHandlerAdapter | Looking for @ControllerAdvice: WebApplicationContext for namespace 'appServlet-servlet': startup date [Sun Dec 13 22:13:31 CET 2015]; parent: Root WebApplicationContext
2015-12-13 22:13:38,661 | INFO  | localhost-startStop-1 | o.s.w.s.m.m.a.RequestMappingHandlerAdapter | Looking for @ControllerAdvice: WebApplicationContext for namespace 'appServlet-servlet': startup date [Sun Dec 13 22:13:31 CET 2015]; parent: Root WebApplicationContext
2015-12-13 22:13:38,721 | INFO  | localhost-startStop-1 | o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver | Detected @ExceptionHandler methods in laraGlobalExceptionHandler
2015-12-13 22:13:38,851 | INFO  | localhost-startStop-1 | o.s.c.s.DefaultLifecycleProcessor | Starting beans in phase 2147483647
2015-12-13 22:13:38,963 | INFO  | localhost-startStop-1 | o.s.w.s.DispatcherServlet | FrameworkServlet 'appServlet': initialization completed in 7212 ms

WebApp 停止/启动日志:

2015-12-13 22:14:20,971 | INFO  | http-nio-8080-exec-3 | o.s.w.c.s.XmlWebApplicationContext | Closing WebApplicationContext for namespace 'appServlet-servlet': startup date [Sun Dec 13 22:13:31 CET 2015]; parent: Root WebApplicationContext
2015-12-13 22:14:20,976 | INFO  | http-nio-8080-exec-3 | o.s.c.s.DefaultLifecycleProcessor | Stopping beans in phase 2147483647
2015-12-13 22:14:21,436 | INFO  | http-nio-8080-exec-3 | o.s.w.c.s.XmlWebApplicationContext | Closing Root WebApplicationContext: startup date [Sun Dec 13 22:13:16 CET 2015]; root of context hierarchy
2015-12-13 22:14:21,436 | INFO  | http-nio-8080-exec-3 | o.s.c.s.DefaultLifecycleProcessor | Stopping beans in phase 2147483647
2015-12-13 22:14:21,446 | WARN  | http-nio-8080-exec-3 | o.s.c.a.CommonAnnotationBeanPostProcessor | Invocation of destroy method failed on bean with name 'broker': java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException
2015-12-13 22:14:21,451 | WARN  | http-nio-8080-exec-3 | o.s.b.f.s.DisposableBeanAdapter | Invocation of destroy method 'destroy' failed on bean with name 'broker': java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException
2015-12-13 22:14:21,456 | INFO  | http-nio-8080-exec-3 | o.s.o.j.LocalContainerEntityManagerFactoryBean | Closing JPA EntityManagerFactory for persistence unit 'default'
2015-12-13 22:14:37,232 | INFO  | http-nio-8080-exec-5 | o.s.w.c.ContextLoader | Root WebApplicationContext: initialization started
2015-12-13 22:14:37,522 | INFO  | http-nio-8080-exec-5 | o.s.w.c.s.XmlWebApplicationContext | Refreshing Root WebApplicationContext: startup date [Sun Dec 13 22:14:37 CET 2015]; root of context hierarchy
2015-12-13 22:14:37,667 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/root-context.xml]
2015-12-13 22:14:38,037 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-security.xml]
2015-12-13 22:14:38,069 | INFO  | http-nio-8080-exec-5 | o.s.s.c.SpringSecurityCoreVersion | You are running with Spring Security Core 4.0.1.RELEASE
2015-12-13 22:14:38,079 | INFO  | http-nio-8080-exec-5 | o.s.s.c.SecurityNamespaceHandler | Spring Security 'config' module version is 4.0.1.RELEASE
2015-12-13 22:14:38,294 | INFO  | http-nio-8080-exec-5 | o.s.s.c.h.AuthenticationConfigBuilder | No login page configured. The default internal one will be used. Use the 'login-page' attribute to set the URL of the login page.
2015-12-13 22:14:38,304 | INFO  | http-nio-8080-exec-5 | o.s.s.c.h.HttpSecurityBeanDefinitionParser | Checking sorted filter chain: [Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 200, Root bean: class [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 400, Root bean: class [org.springframework.security.web.header.HeaderWriterFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 500, Root bean: class [org.springframework.security.web.csrf.CsrfFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 600, Root bean: class [org.springframework.security.web.authentication.logout.LogoutFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 700, <org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>, order = 1100, Root bean: class [org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1300, Root bean: class [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1500, Root bean: class [org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1600, Root bean: class [org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1700, Root bean: class [org.springframework.security.web.authentication.AnonymousAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2000, Root bean: class [org.springframework.security.web.session.SessionManagementFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2100, Root bean: class [org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2200, <org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>, order = 2300]
2015-12-13 22:14:38,339 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-jpa.xml]
2015-12-13 22:14:39,135 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/spring-tx.xml]
2015-12-13 22:14:39,185 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-couchdb.xml]
2015-12-13 22:14:39,195 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-mail.xml]
2015-12-13 22:14:39,205 | INFO  | http-nio-8080-exec-5 | o.s.b.f.x.XmlBeanDefinitionReader | Loading XML bean definitions from class path resource [spring-jms.xml]
2015-12-13 22:14:40,440 | INFO  | http-nio-8080-exec-5 | o.s.o.j.LocalContainerEntityManagerFactoryBean | Building JPA container EntityManagerFactory for persistence unit 'default'
2015-12-13 22:14:49,729 | INFO  | http-nio-8080-exec-5 | o.s.s.w.DefaultSecurityFilterChain | Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.SecurityContextPersistenceFilter@31a5e97c, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1a82f575, org.springframework.security.web.header.HeaderWriterFilter@1092658, org.springframework.security.web.csrf.CsrfFilter@28a53e0, org.springframework.security.web.authentication.logout.LogoutFilter@1c7ab4c4, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@11dec363, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@592d0ce6, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@9684170, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@407d080d, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@27df0eba, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@16a46c9b, org.springframework.security.web.session.SessionManagementFilter@5d8cdcfe, org.springframework.security.web.access.ExceptionTranslationFilter@75999a22, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2a6cf0f5]
2015-12-13 22:14:50,126 | WARN  | http-nio-8080-exec-5 | o.s.w.c.s.XmlWebApplicationContext | Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'broker': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at 

有什么想法吗?

环境信息:

  • Windows 7 操作系统
  • Java 1.8.0_25
  • Tomcat 8.0.30
  • WebApp 使用 Spring、Active MQ、CouchDB、Hibernate ...
  • 有些库如 ActiveMQ 没有打包到 war 文件中。它们被放入一个单独的文件夹中。此文件夹添加到catalina.properties中的common.loader
  • 一些配置文件没有打包到 war 文件中。它们被放入一个单独的文件夹中。此文件夹已添加到 shared.loader。

Spring-Lib 详细信息(所有 spring*.jar 文件):

  • activemq-spring-5.13.0
  • org.ektorp.spring-1.4.2
  • spring-aop-4.1.6.RELEASE
  • spring-beans-4.1.6.RELEASE
  • spring-context-4.1.6.RELEASE
  • spring-core-4.1.6.RELEASE
  • spring-data-commons-1.10.0.RELEASE
  • spring-data-jpa-1.8.2.RELEASE
  • spring-expression-4.1.6.RELEASE
  • spring-jdbc-4.1.6.RELEASE
  • spring-jms-4.1.6.RELEASE
  • spring-messaging-4.1.6.RELEASE
  • spring-orm-4.1.6.RELEASE
  • spring-security-config-4.0.1.RELEASE
  • spring-security-core-4.0.1.RELEASE
  • spring-security-web-4.0.1.RELEASE
  • spring-tx-4.1.6.RELEASE
  • spring-web-4.1.6.RELEASE
  • spring-webmvc-4.1.6.RELEASE
  • xbean-spring-3.7

Catalina.properties(注释版本有效,但它很脏):

#common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/bmstuff/lib","${catalina.home}/bmstuff/lib/*.jar","${catalina.home}/webapps/maxi/WEB-INF/lib","${catalina.home}/webapps/maxi/WEB-INF/lib/*.jar"

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
server.loader=
shared.loader="${catalina.base}/bmstuff/","${catalina.base}/bmstuff/lib","${catalina.base}/bmstuff/lib/*.jar"

更新 - 发现脏解决方案: 我找到了一个肮脏的解决方案...如果我在 catalina 属性中将我的 web 应用程序的 lib 文件夹添加到 common.loader,我可以启动和停止我的 web 应用程序而不会出现任何错误..

韩国

最佳答案

至少两个 spring jar 有另一个版本 4.0.9:

  • Spring 形式
  • Spring jdbc

Spring Security 有自己的版本控制,所以应该没问题。

Springg Data 我不确定,但可能没问题。

关于java - 应用程序仅在 Tomcat 重启后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256715/

相关文章:

java - Spring 是一个光荣的工厂;这是可以接受的吗?

Spring 与 Jboss

java - Android 上的谷歌地图是非常慢还是我使用它的方式不对?

java - 从 ArrayList<HashMap<String,String>> 填充 Spinner

java - 使用 jms spring 和 activemq 队列的聊天应用程序

maven - 如何在 OpenShift 中正确配置 h2

jsp - 将 .jsp 作为 .html 文件运行

tomcat - 发布请求在我的 servlet 中不起作用,但获取请求可以

java - 在 Java 或 C++ 等编程语言中有效地模拟 SQL group by 子句,而不是求助于 RDBMS

java - 具有静态字符串保留宽度的 printf