`
can_do
  • 浏览: 249387 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

嵌入Tomcat集成Memcached-Session-Manager(msm)

阅读更多
ERROR | Context [/ofbizsetup] startup failed due to previous errors
INFO | No Spring WebApplicationInitializer types detected on classpath
INFO |  starts initialization... (configured nodes definition n1:192.168.0.43:12587, failover nodes null)
ERROR | The session manager failed to start
org.apache.catalina.LifecycleException: Failed to start component [de.javakaffee.web.msm.MemcachedBackupSessionManager[/tomahawk]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5268)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
        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: de.javakaffee.web.msm.SuffixLocatorBinaryConnectionFactory.getAuthWaitTime()J
        at de.javakaffee.web.msm.SuffixLocatorBinaryConnectionFactory.createMemcachedNode(SuffixLocatorBinaryConnectionFactory.java:116)
        at net.spy.memcached.MemcachedConnection.createConnections(MemcachedConnection.java:141)
        at net.spy.memcached.MemcachedConnection.<init>(MemcachedConnection.java:128)
        at net.spy.memcached.DefaultConnectionFactory.createConnection(DefaultConnectionFactory.java:176)
        at net.spy.memcached.MemcachedClient.<init>(MemcachedClient.java:193)
        at de.javakaffee.web.msm.MemcachedClientFactory.createMemcachedClient(MemcachedClientFactory.java:53)
        at de.javakaffee.web.msm.MemcachedSessionService.createMemcachedClient(MemcachedSessionService.java:505)
        at de.javakaffee.web.msm.MemcachedSessionService.startInternal(MemcachedSessionService.java:426)
        at de.javakaffee.web.msm.MemcachedBackupSessionManager.startInternal(MemcachedBackupSessionManager.java:518)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
        ... 8 more
^[[?1;2cERROR | Context [/tomahawk] startup failed due to previous errors
INFO | Starting ProtocolHandler ["ajp-nio-8009"]
INFO | Starting ProtocolHandler ["http-nio2-8080"]
INFO | Starting ProtocolHandler ["http-nio2-8443"]
********************************************************
【问题】
同名方法(createMemcachedNode)存在于两个类中:
1> de.javakaffee.web.msm.SuffixLocatorBinaryConnectionFactory.createMemcachedNode
2>  net.spy.memcached.BinaryConnectionFactory.createMemcachedNode
如果调用到BinaryConnectionFactory中的此方法,则没有问题,如果调用到SuffixLocatorBinaryConnectionFactory的方法就会出现【NoSuchMethodError】

net.spy.memcached.MemcachedConnection.createConnections调用
/////////begin/////
private final ConnectionFactory connectionFactory;
MemcachedNode qa = this.connectionFactory.createMemcachedNode(sa, ch, this.bufSize);
/////////end///////
而connectionFactory有多个实现类,如上面的(1)和(2),应该使用(2)就不会有问题。
可以考虑通过jvm参数-D,指定其实现类。
【解决】
经比对,发现jar版本不一致,memcached-session-manager-1.8.2.jar需要用到spymemcached-2.11.1.jar而不是spymemcached-2.8.1.jar。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics