Embedding Tomcat to integrate 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
If this method in BinaryConnectionFactory is called, there is no problem. If the method of SuffixLocatorBinaryConnectionFactory is called, [NoSuchMethodError]

net.spy.memcached.MemcachedConnection.createConnections call
/////////begin/////
private final ConnectionFactory connectionFactory;
MemcachedNode qa = this.connectionFactory.createMemcachedNode(sa, ch, this.bufSize);
/////////end///////
and connectionFactory has multiple implementation classes, as above (1) and (2), should use (2) without problems.
You can consider specifying its implementation class through the jvm parameter -D.
[Solution]
After comparison, it was found that the jar versions were inconsistent, and memcached-session-manager-1.8.2.jar needed to use spymemcached-2.11.1.jar instead of spymemcached-2.8.1.jar.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326641751&siteId=291194637