2016-01-06 1 views
0

Nous utilisions Memcached pour la gestion de session dans notre application Web avec Tomcat 7 et cela fonctionnait bien. Pour fonctionner, j'ai ajouté suivant jarres à dossier lib de TomcatGestionnaire de session Memcached et Tomcat 8 Problème

  • spymemcached-2.8.12.jar
  • Couchbase-client-1.1.4.jar
  • memcached-session-manager-tc7- 1.6.5.jar
  • memcached-session-manager-1.6.5.jar

Et fait suite à un changement au server.xml de Tomcat

<Context path="customersupport" docBase="customerSupportOrderCentral#v2" sessionCookieName="CUSTOMERSUPPORT-JSESSIONID"> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 
memcachedNodes="n1:oc-cs-elasticcache.w8eptf.cfg.usw1.cache.amazonaws.com:11211" 
sticky="false" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" /> 
</Context> 

Maintenant, nous sommes en train de mettre à jour notre JDK à 1.8 et Tomcat à 8. J'ai fait des recherches en ligne pour cela et il s'est avéré que tomcat 8 ne supporte pas getSessionCookieName, je dois mettre à jour les fichiers memcache jar pour tomcat 8 J'ai donc ajouté un nouvel ensemble de fichiers jar au dossier lib de tomcat comme ci-dessous.

  • spymemcached-2.11.1.jar
  • memcached-session-manager-tc8-1.8.1.jar
  • memcached-session-manager-1.8.1.jar
  • Couchbase-client- 1.4.0.jar

Et maintenu Server.xml même maintenant Tomcat lance erreur suivante lors du démarrage.

06-Jan-2016 07:03:48.934 SEVERE [main] org.apache.tomcat.util.digester.Digester.startElement Begin event threw error 
java.lang.NoClassDefFoundError: org/apache/catalina/Lifecycle 
    at java.lang.ClassLoader.findBootstrapClass(Native Method) 
    at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1012) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:413) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:116) 
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1178) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182) 
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1344) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) 
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451) 
    at org.apache.catalina.startup.Catalina.load(Catalina.java:551) 
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599) 
    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:497) 
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484) 

Si je ne change server.xml pour inclure gestionnaire memcache, son travail, mais bien avec le directeur de la session memcache son lancement au-dessus de l'erreur. Je peux vraiment utiliser de l'aide ici pour résoudre ce problème.

Merci

+0

Avez-vous essayé de commencer avec une nouvelle configuration de tomcat 8 (server.xml etc.) en ajoutant msm config par la suite? Pouvez-vous également essayer une version antérieure de tomcat 8 (peut-être y avait-il des changements subtilement incompatibles dans les dernières versions)? – MartinGrotzke

Répondre

1

J'ai eu le même problème et est resté coincé pendant 2 jours. Le problème de ma part était que j'avais les jars spécifiques à memcache ci-dessous dans tomcat/lib et dans un autre classpath spécifique au projet - tomcat/{project}/conf. La question se est résolu quand j'ai enlevé ces pots de tomcat/{} projet/conf

spymemcached-2.11.1.jar memcached-session-manager-tc8-1.8.1.jar memcached-session-manager-1.8 .1.jar