I would like to use msm-session-manager and kryo as serialization strategy. I use tomcat6, java 8 and following libs: I started with this configuration as suggested by most documentation online (https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#introduction).
However, it wasn't able to properly initialize the serializer, so had to move all jars into tomcat/lib dir. Now the configuration is like this:
This is what I have in context.xml
With this configuration, I get the following NPE
I'm not sure what's wrong with my configuration. I tried it with two tomcats and two memcached setup, but still got the same result. This is the config I tried:
Any help is much appreciated or any direction on what could be the problem? Thanks |
tomcat/lib:
spymemcached-2.11.1.jar
memcached-session-manager-tc6-2.0.0.jar
memcached-session-manager-2.0.0.jar
WEB-INF/lib:
asm-5.1.jar
kryo-3.0.3.jar
kryo-serializers-0.37.jar
minlog-1.3.0.jar
reflectasm-1.11.0.jar
msm-kryo-serializer-2.0.0.jar
objenesis-2.4.jar
Dec 20, 2016 8:55:31 AM de.javakaffee.web.msm.MemcachedSessionService startInternal
INFO: MemcachedSessionService starts initialization... (configured nodes definition n1:localhost:11211, failover nodes null)
Dec 20, 2016 8:55:31 AM de.javakaffee.web.msm.RequestTrackingHostValve <init>
INFO: Setting ignorePattern to .*\.(ico|png|gif|jpg|css|js)$
Dec 20, 2016 8:55:31 AM de.javakaffee.web.msm.MemcachedSessionService setLockingMode
INFO: Setting lockingMode to null
Dec 20, 2016 8:55:31 AM de.javakaffee.web.msm.MemcachedSessionService createTranscoderFactory
INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
Dec 20, 2016 8:55:31 AM de.javakaffee.web.msm.MemcachedSessionService loadTranscoderFactoryClass
INFO: Could not load transcoderfactory class with classloader null, trying org.apache.catalina.loader.StandardClassLoader@1251deb
Dec 20, 2016 8:55:31 AM org.apache.catalina.core.StandardContext start
SEVERE: Error manager.start()
java.lang.RuntimeException: Could not create transcoder factory.
at de.javakaffee.web.msm.MemcachedSessionService.getTranscoderFactory(MemcachedSessionService.java:505)
at de.javakaffee.web.msm.MemcachedSessionService.createTranscoderService(MemcachedSessionService.java:497)
at de.javakaffee.web.msm.MemcachedSessionService.startInternal(MemcachedSessionService.java:452)
at de.javakaffee.web.msm.MemcachedBackupSessionManager.startInternal(MemcachedBackupSessionManager.java:145)
at de.javakaffee.web.msm.MemcachedBackupSessionManager.start(MemcachedBackupSessionManager.java:675)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at de.javakaffee.web.msm.MemcachedSessionService.loadTranscoderFactoryClass(MemcachedSessionService.java:542)
at de.javakaffee.web.msm.MemcachedSessionService.createTranscoderFactory(MemcachedSessionService.java:524)
at de.javakaffee.web.msm.MemcachedSessionService.getTranscoderFactory(MemcachedSessionService.java:503)
... 18 more
Dec 20, 2016 8:55:31 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/QDesigner] startup failed due to previous errors
Dec 20, 2016 8:55:31 AM org.apache.catalina.core.StandardContext stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/QDesigner] has not been started
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.MemcachedSessionService startInternal
INFO: MemcachedSessionService starts initialization... (configured nodes definition n1:localhost:11211, failover nodes null)
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.RequestTrackingHostValve <init>
INFO: Setting ignorePattern to .*\.(ico|png|gif|jpg|css|js)$
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.MemcachedSessionService setLockingMode
INFO: Setting lockingMode to null
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.MemcachedSessionService createTranscoderFactory
INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.serializer.kryo.KryoTranscoder <init>
INFO: Starting with initialBufferSize 102400, maxBufferSize 2048000 and defaultSerializerFactory de.javakaffee.web.msm.serializer.kryo.DefaultFieldSerializerFactory
Dec 20, 2016 8:55:32 AM de.javakaffee.web.msm.MemcachedSessionService startInternal
INFO: --------
- MemcachedSessionService finished initialization:
- sticky: true
- operation timeout: 1000
- node ids: [n1]
- failover node ids: []
- storage key prefix: null
--------
2016-12-20 08:55:31.301 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=localhost/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2016-12-20 08:55:31.301 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@16373df
Dec 20, 2016 8:57:02 AM de.javakaffee.web.msm.MemcachedSessionService loadFromMemcached
WARNING: Could not deserialize session with id 25669D5AA95A94B92947C85888DF0B59-n1 from memcached, session will be purged from storage.
de.javakaffee.web.msm.TranscoderDeserializationException: com.esotericsoftware.kryo.KryoException: java.lang.NullPointerException
Serialization trace:
criteria (com.quadramed.core.web.LWPagedResult)
at de.javakaffee.web.msm.serializer.kryo.KryoTranscoder.deserializeAttributes(KryoTranscoder.java:213)
at de.javakaffee.web.msm.TranscoderService.deserializeAttributes(TranscoderService.java:167)
at de.javakaffee.web.msm.TranscoderService.deserialize(TranscoderService.java:124)
at de.javakaffee.web.msm.MemcachedSessionService.loadFromMemcached(MemcachedSessionService.java:1147)
at de.javakaffee.web.msm.MemcachedSessionService.findSession(MemcachedSessionService.java:597)
at de.javakaffee.web.msm.MemcachedBackupSessionManager.findSession(MemcachedBackupSessionManager.java:233)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2283)
at org.apache.catalina.connector.Request.getSession(Request.java:2075)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at com.nuance.him.topaz.filter.ClintegrityMDCFilter.fillMDC(ClintegrityMDCFilter.java:78)
at com.nuance.him.topaz.filter.ClintegrityMDCFilter.doFilter(ClintegrityMDCFilter.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at de.javakaffee.web.msm.RequestTrackingContextValve.invoke(RequestTrackingContextValve.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:156)
at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.esotericsoftware.kryo.KryoException: java.lang.NullPointerException
Serialization trace:
criteria (com.quadramed.core.web.LWPagedResult)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:144)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:551)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:790)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:161)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:39)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:686)
at de.javakaffee.web.msm.serializer.kryo.KryoTranscoder.deserializeAttributes(KryoTranscoder.java:211)
... 27 more
Caused by: java.lang.NullPointerException
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:234)
at java.util.ArrayList.ensureCapacity(ArrayList.java:218)
at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:114)
at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:40)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:125)
... 33 more
> an email to memcached-session-manager+unsub...@googlegroups.com
> <mailto:memcached-session-manager+unsubscribe@googlegroups.com>.