开发者社区> 问答> 正文

redis+tomcat共享session问题?报错

大家好:

   已经搞了一周了,网上的答案步骤都是千篇一律的,菜鸟我搞的也是一头雾水啊!

需求是:redis实现session共享!

操作步骤:根据网上的文章我去网上下载了三个jar包:commons-pool(1.X 2.X的都试过了,同样的问题)

jedis-2.7.2.jar和 tomcat-redis-session.jar(网上下载的还有自己打包的也都试过了,同样的问题)

然后修改了tomcat下的conf文件夹下的context.xml

<!--add -->
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

         host="127.0.0.1"

         port="6379"

         database="0"

         maxInactiveInterval="1800"  />
<!--end -->不确定两个className是什么意思,是不是固定的?因为报错的好像是说找不见这个!

问题来了:

严重: Begin event threw exception
java.lang.ClassNotFoundException: com.radiadesign.catalina.session.RedisSessionHandlerValve
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:204)
        at org.apache.tomcat.util.digester.Rule.begin(Rule.java:152)
        at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1376)
        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.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)

展开
收起
爱吃鱼的程序员 2020-06-10 10:27:06 836 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    是不是jar包没扔进来啊我已经将下载的三个包放到tomcat下的lib包下了呢,之前有人说版本不匹配,我好几个版本做了测试的,但都是启动tomcat就报错,光扔jar进去是不报错的,但是改context.xml文件,添加的是上面的那一段代码,就报错了……

    你看看你jar里面是否有这个类。别总是copy网上的文章,记得这个好像那个包名变了。你看看。


    我根据他们说的将官方的文件整进eclipse下,打包了,然后将打包中的类的名称放到tomcat的配置中了,但是tomcat启动不起来了……纠结中…… 只建议你问题要看仔细,不是拿过来就用,要去分析为什么这么用。你可以创建一个tomcat环境的web项目,平时我都是使用jetty测试的,追踪session的时候也看的是jetty的sessionManger。我在做做个集成的时候,1次成功,能够实现session共享,首先是把源码下下来,然后放到eclipse上去,从他的源码分析他是怎样将我们的session存储到redis中的,然后看看它自己实现的sessionManager,这里是关键。然后你就知道他在tomcat配置文件中为什么这么配置了。你的问题我都没看,因为光从你的异常上也看不出什么个道道来,索性告诉你我是如何成功的一些操作步骤经验。望君成功。
    回复<aclass='referer'target='_blank'>@520920:那你就好好看看流程,细心点就ok了我现在还没整集成呢,就配置了一个tomcat都启动不起来了,纠结中……流程是咋样的,别人也都告诉我了,也说配置很简单就一段代码的问题,可是……操作不成功,我也不知道到底是哪里出了问题……纠结中……没找到jar包是啊,报错就是说没找到class文件,我也不知道咋解决这问题了,看大神们说的都挺简单的样子,咋我操作起来就不是那么回事了呢……纠结中……缺包我按照网上的打包加进lib文件夹下了,但是,说找不到,我也不知道是什么情况了……纠结中……链接:http://share.weiyun.com/83f80ea485e7f660efec6ea3caf46da8(密码:AJ3C)使用压缩工具打开jar文件,浏览确定相应目录下是否存在相应的.class文件按你说的方法,我试了,class文件确实是存在的……,但就是不知道,它为什么找不到……纠结中……别只会copy网上的文章!!!不参考网上的,我也不知道从何下手啊……都说的很轻巧,我咋就操作行不通呢……

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">tomcat-redis-session要下源码根据自己Tomcat环境进行编译的两个className是<spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">tomcat-redis-sessionJar中的class名称 

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">源码可以从这里拿https://git.oschina.net/nature/tomcat-redis-session.git

    tomcat-redis-session,我确实是在git中获取的文件啊,而且也是从eclipse中打包的啊……

    为了让楼主看看Java开发是多么的<spanstyle="font-size:18px;">简单和轻松,<spanstyle="font-size:18px;">你说你耗时一周都没搞好,简直就是胡说八道!!我从没搞过reids和tomcat整合的<spanstyle="font-size:12px;">(我做的项目一直都是去session用cookie,为了验证你在胡说八道,我还特意把我项目里JSP里的session=false去掉<spanstyle="font-size:12px;">),耗时也不过20分钟!!<spanstyle="font-size:18px;">我今天非要截图给你看看!!最受不了新手只会去copy网上的文章,不去看源码不去看文档。

    所用版本tomcat7最新版,Java7最新版,redis2.6,jedis2.7.0,common-pool2.0。
    tomcat-seesion整合包这个:<atarget="_blank"rel="nofollow">https://github.com/jcoleman/tomcat-redis-session-manager/releases/tag/1.2-tomcat-7-java-7 ,其实里面就5个文件而已!我自己放eclipse里打包的,分分钟搞定。
    1.扔jar包到tomcat目录

    <imgsrc="http://static.oschina.net/uploads/space/2015/1128/001125_qCIO_724468.png"alt="">

    2.配置tomcat的context.xml文件

    <imgsrc="http://static.oschina.net/uploads/space/2015/1128/001820_2iUI_724468.png"alt="">
    <spanstyle="font-size:24px;line-height:1.5;">3.配置完了,启动项目,简单的要死!!验证一下

    <spanstyle="font-size:24px;"><imgsrc="http://static.oschina.net/uploads/space/2015/1128/001320_oUKG_724468.png"alt="">

    <spanstyle="font-size:24px;"><imgsrc="http://static.oschina.net/uploads/space/2015/1128/001339_J3QP_724468.png"alt="">

    回复<aclass='referer'target='_blank'>@520920:我没跳。。启动项目就是启动tomcat啊。。。jar包要放在tomcat下已经解决了,我将项目中打包用到的jar也放到tomcat下了,现在tomcat可以正常使用了,虽然用的不是你说的,但仍然很感谢你说的第一步第二步我都整完了,但是你说的启动项目,启动的是什么啊?我咋都没你这些东西……你能不能说详细点啊?都咋操作的啊,能不能详细说一下啊,你别跳着说啊,你跳着说,我看不懂啊……我是整完第一步第二步启动tomcat报错的……你咋启动的项目?老大威武,赞一个

    2020-06-10 10:27:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
ApsaraDB for Redis——与创客同行 立即下载