不能誤導人!ClassNotFoundException: com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve

目標:Tomcat 作集羣,Session會話共享java

環境:Tomcat+redisredis

互聯網發達了,文章隨意抄襲,也不通過本身實踐,讓我這個對JAVA沒有任何認知的新鳥踩進了大坑,但願後者不要再踩這個坑,本文章適用於其餘ClassNotFoundException錯誤。apache


配置過程我就不羅列了,基本都差很少tomcat

Github.com 官網下載tomcat-redis-session-manager 時候給出的USAGE以下:session


<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
         host="localhost" <!-- optional: defaults to "localhost" -->
         port="6379" <!-- optional: defaults to "6379" -->
         database="0" <!-- optional: defaults to "0" -->
         maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
         sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
         sentinelMaster="SentinelMasterName" <!-- optional -->
         sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />ide


經反覆試驗後,Tomcat啓動時候報錯  ClassNotFoundException: com.orangefunction.tomcat.redissessions.RedisSessionHandlerValveci


明明已經複製到$HOME/lib下了 ,爲什麼提示找不到?解壓縮包後也能發現RedisSessionHandlerValve.class,難道JDK版本有問題?真讓新鳥百思不得其解!還好,搜到一篇文章關於反編譯的,咱們就在SHELL下輸入 javap -verbose RedisSessionHandlerValve.classit

輸出以下:io

public class com.radiadesign.catalina.session.RedisSessionHandlerValve extends org.apache.catalina.valves.ValveBase編譯

仔細比對className,有出入啊?!官網給出的盡然是錯誤的,修改後從新啓動Tomcat,恢復正常。

相關文章
相關標籤/搜索