java - spring redis redisTemplate注入失敗
問題描述
jar版本:<redis.clients>2.8.1</redis.clients>
<spring-data-redis>1.7.5.RELEASE</spring-data-redis> <spring.version>4.0.2.RELEASE</spring.version>
spring中的redis配置 bean:<bean class='redis.clients.jedis.JedisPoolConfig'>
<property name='maxIdle' value='${redis.maxIdle}' /> <property name='maxTotal' value='${redis.maxActive}' /> <property name='maxWaitMillis' value='${redis.maxWait}' /> <property name='testOnBorrow' value='${redis.testOnBorrow}' /> </bean><bean p:host-name='${redis.host}' p:port='${redis.port}' p:password='${redis.pass}' p:pool-config-ref='poolConfig' /><bean class='org.springframework.data.redis.core.StringRedisTemplate'> <property name='connectionFactory' ref='connectionFactory' /><!-- 如果不配置Serializer,那么存儲的時候智能使用String,如果用User類型存儲,那么會提示錯誤User can’t cast to String?。?! --><property name='keySerializer'><bean /> </property> <property name='valueSerializer'><bean /> </property></bean>
集成了多個模塊項目 其中一個出現錯誤 不知道什么原因引起的tomcat jetty都報錯報錯:2017-03-07 23:12:32,480 [main] ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’redisTemplate’ defined in URL [file:/E:/CDXX/dev/code/workspace/lgip/target/classes/spring-jedis.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lang/ClassLoader;)V
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:782)at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424)at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:774)at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:298)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)at org.eclipse.jetty.server.Server.doStart(Server.java:282)at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:520)at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:365)at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:523)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lang/ClassLoader;)V
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.<init>(JdkSerializationRedisSerializer.java:53)at org.springframework.data.redis.core.RedisTemplate.afterPropertiesSet(RedisTemplate.java:119)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)... 55 more
[WARNING] Failed startup of context o.m.j.p.JettyWebAppContext{/,file:/E:/CDXX/dev/code/workspace/lgip/src/main/webapp/},file:/E:/CDXX/dev/code/workspace/lgip/src/main/webapp/org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’redisTemplate’ defined in URL [file:/E:/CDXX/dev/code/workspace/lgip/target/classes/spring-jedis.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lang/ClassLoader;)V
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:782)at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424)at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:774)at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:298)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)at org.eclipse.jetty.server.Server.doStart(Server.java:282)at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65)at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:520)at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:365)at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:523)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lang/ClassLoader;)V
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.<init>(JdkSerializationRedisSerializer.java:53)at org.springframework.data.redis.core.RedisTemplate.afterPropertiesSet(RedisTemplate.java:119)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)... 55 more
問題解答
回答1:類加載錯誤,org.springframework.core.serializer.support.DeserializingConverter 這個類在 spring-core 包里,應該是缺少 spring-core 包
回答2:這個是 是spring版本問題
相關文章:
1. html5 - 最近在自學react 求一個react表單提交的例子2. 老師您好!我有一個問題、3. javascript - jq 上傳圖片成功后添加一個新的上傳框時出現問題4. 網站上有個圖標改不了了 求幫忙 是用svg寫的5. 我和老師的代碼對照了幾遍沒發(fā)現問題,但是瀏覽器打開就有問題了,求解6. python django工程上傳一張照片調用python方法時報錯,請問如何處理?7. python - Django ManyToManyField 字段數據在 admin后臺 顯示不正確,這是怎么回事?8. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。9. python - angular route 與 django urls 沖突怎么解決?10. mysql - 千萬數據 分頁,當偏移量 原來越大時,怎么優(yōu)化速度
