Redis3.2+Tomcatå®ç°é群çSession管ç -- tomcat-redis-session-managerçç¼è¯åå¼åé¨ç½²ç¯å¢æ建
åæå°åï¼http://www.cnblogs.com/Binhua-Liu/archive/2016/06/05/5561008.html
å·²ç»æä¸å°æç« ä»ç»ä½¿ç¨tomcat-redis-session-manageræ¥å®ç°Redisåå¨TomcatçSessionï¼å®ç°åå¸å¼Session管çãä½æ¯ç°å¨å®æ¹ç¼è¯çtomcat-redis-session-managerçjarå å·²ç»å¾æ§äºï¼åºäºçRedisçæ¬ä¹å¾ä½ãè¿éæææèªå·±éæ°ç¼è¯å¹¶é¨ç½²å®çæ¥éª¤ä»ç»ä¸ä¸ã
1ï¼é¦å ï¼ä»Githubä¸cloneä¸è½½tomcat-redis-session-managerå·¥ç¨çæºä»£ç ï¼å°åæ¯ï¼
https://github.com/jcoleman/tomcat-redis-session-manager.git
ç¡®ä¿ä½ 使ç¨çæ¯masteråæ¯ã
2ï¼ä¸è½½çå·¥ç¨æ¯æ²¡åæ³ç´æ¥å¯¼å ¥å°eclipseä¸ç¼è¯çï¼è½ç¶ä¸æ¯å¿ é¡»çï¼ä½æ¯æå¾åäºä¸ºå®å建ä¸ä¸ªeclipseå·¥ç¨ãè¿ä¸ªä¸æ¥å说ï¼ï¼èæ¯éè¿gradleæ¥ç¼è¯ï¼å æ¤æ们éè¦ä¸è½½gradleï¼å°åæ¯ï¼
https://gradle.org/gradle-download/
ä¸è½½âBinary only distributionâå°±å¯ä»¥äºãæ解åæ¾å¨C:\gradle-2.13ç®å½ä¸ï¼gradleç´æ¥å°±å¯ä»¥ç¨äºãä½ ä¹å¯ä»¥æè·¯å¾C:\gradle-2.13\binæ¾å¨PATHç¯å¢åééï¼ä¼æ¹ä¾¿ä¸äºãä½æ没è¿ä¹åã
3ï¼æå¼/tomcat-redis-session-manager/build.gradleãä¿®æ¹ä¾èµå ççæ¬ï¼å°½é使ç¨ææ°ççæ¬ã
compileJava { sourceCompatibility = 1.7 targetCompatibility = 1.7 } dependencies { compile group: 'org.apache.tomcat', name: 'tomcat-catalina', version: '7.0.69' compile group: 'redis.clients', name: 'jedis', version: '2.8.1' compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.4.2' //compile group: 'commons-codec', name: 'commons-codec', version: '1.10' testCompile group: 'junit', name: 'junit', version: '4.+' testCompile 'org.hamcrest:hamcrest-core:1.3' testCompile 'org.hamcrest:hamcrest-library:1.3' testCompile 'org.mockito:mockito-all:1.9.5' testCompile group: 'org.apache.tomcat', name: 'tomcat-coyote', version: '7.0.69' }
ä¸é¢æ¯build.gradleçç段ï¼å¦é«äº®çå°æ¹æ示ï¼
1ï¼æjavaçæ¬æ¹ä¸ºä½ 对åºçjavaçæ¬
2ï¼ætomcat-catalinaä¾èµççæ¬æ¹ä¸ºä½ å®è£ çtomcatçæ¬ï¼ææ¯7.0.69
3ï¼æjedisçæ¬æ¹ä¸ºææ°çï¼å½åæ¯2.8.1
4ï¼æcommons-pool2çæ¬æ¹ä¸ºææ°ç2.4.2
5ï¼ä¹å¯ä»¥ætestCompileä¸çå¼ç¨ä¹ä¿®æ¹ä¸ºææ°çï¼ä½è¿åºè¯¥ä¸è¦ç´§äºã
å 为gradleä¹æ¯ä»mavenä»åºä¸ä¸è½½jarå çï¼æ以æ好å°http://mvnrepository.com/ä¸æ£æ¥ä¸ä¸ï¼ä»¥ä¸å¼ç¨çgroupï¼nameï¼versionè½å¨ä»åºæ¾å°ãå¦ågradleè¿æ¯ä¸è½½ä¸å°jarå ä¼æ¥éã
4ï¼ï¼å¯éï¼å¯¼å ¥ä¸ºeclipseå·¥ç¨ãè¿æ¯è¦æå¼build.gradleæ件ãå¨ç¬¬ä¸è¡å ä¸apply pluginï¼âeclipseâ
' apply plugin: 'java' apply plugin: 'maven'
ç¶åæ§è¡å½ä»¤
cd [root]/tomcat-redis-session-manager c:\gradle-2.13\bin\gradle eclipse
è¿æ ·gradleä¼å建.project, .classpathæ件ï¼ä½ å°±å¯ä»¥æ项ç®å¯¼å ¥å°eclipseä¸äºã
5, ä½ å¯ä»¥ç¨eclipseè¿è¡ç¼è¯ãæè ç¨gradleç¼è¯ã
c:\gradle-2.13\bin\gradle build
ç¼è¯æåï¼
ä½æ¯æç¼è¯çæ¶åå ¶å®æ¯éå°ä¸äºé®é¢çï¼å¦æä½ ä¹æåæ ·çé®é¢ï¼çæä¸é¢çtrouble shootingã
6ï¼ TroubleShooting
å¨ä»¥ä¸ç¬¬4æ¥ï¼ç¬¬5æ¥ä¸ï¼å¦æ使ç¨gradleéå°ä»¥ä¸é误ï¼
No such property: sonatypeUsername for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer
å¨build.gradleä¸ï¼æ³¨éæä¸é¢é«äº®çä¸è¡ã
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
//authentication(userName: sonatypeUsername
,
password: sonatypePassword)
}
åèï¼https://github.com/wealdtech/hawk/issues/16
å¦æéå°ä»¥ä¸é误ï¼
* What went wrong:
Execution failed for task ':signArchives'.
> Cannot perform signing task ':signArchives' because it has no configured signatory
å¨build.gradleä¸ï¼æ³¨éæ以ä¸3è¡ï¼
// signing {
// sign configurations.archives
//}
åèï¼https://groups.google.com/forum/#!topic/gaelyk/WfdEDBOzIOM
7ï¼å¨tomcat-redis-session-manager\build\libsç®å½ä¸ï¼å¯ä»¥æ¾å°ç¼è¯æåçjaræ件ï¼
tomcat-redis-session-manager-2.0.0.jar
å¨C:\Users\[user]\.gradleç®å½ä¸ï¼å¯ä»¥æ¾å°å¦å¤2个ä¾èµçjaræ件ï¼æè ä»mavenéä¸è½½ï¼
commons-pool2-2.4.2.jar
jedis-2.8.1.jar
æè¿3个æ件æ·è´å°\apache-tomcat-7.0.69\libç®å½
8ï¼æå¼\apache-tomcat-7.0.69\conf\context.xml,å¨<Context>å æ·»å ï¼
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="127.0.0.1" port="6379" database="0" maxInactiveInterval="60" />
å ¶ä¸çhoståportæ¯Redisçå°åãï¼è³äºRedisé群çé ç½®æ¹å¼ï¼ä»¥ååæ´æ°ï¼
å¦æä½ æ¯ç¨eclipseä¸ç¨tomcatè¿è¡è°è¯ï¼é£ä¹å¨ä½ çå¨æç½ç«é¡¹ç®ä¸ï¼å¨Project Explorerä¸çServerséï¼æ¾å°context.xmlæ件ï¼æ¥æ·»å 以ä¸çé ç½®ã
以ä¸å·²ç»å®æäºé ç½®ï¼ç°å¨ç®åçæµè¯ä¸ä¸ã
1ï¼ å¨é¡¹ç®ä¸æ·»å ä¸ä¸ªç®åçjsp页ã
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> SessionID:<%=session.getId()%> </body> </html>
2ï¼å¯å¨åï¼çå°
3ï¼ç¨redisçpython客æ·ç«¯redis-pyæ¥ç对åºçkeyæ¯ä¸æ¯å建
>>> import redis
>>> r=redis.StrictRedis(host='127.0.0.1',port=6379)
>>> r.get('289B7B17C0609FE930617ED659272C60')