JFinal

登录 注册

jfinal3.5+jetty-server2018.11+shiro访问就报错的解决方案

在升级到jfinal3.5后,jetty-server也要跟着升级到最新版本的2018.11

但是,如果项目中使用了shiro的朋友会发现,项目可以启动,但是访问的时候就会报错,我这边是报了一个如下的错误

image.png

控制台显示的错误更让我摸不着头脑image.png


但是,当我把jetty-server降级到2018.9的时候就可以正常访问

后来在俱乐部内联系了波总找到了原因:

查看jetty-server2018.9的com.jfinal.server.jetty.JettyServer.class部分源码如下

image.png

查看jetty-server2018.11的部分源码如下

image.png

两个版本的区别在于11加入了jsp的支持,

而问题就在于shiro也是org.apache包下的,所以会导致冲突


解决方案

一:降级到2018.9

二:使用码云上刚刚更新的2018.12(未上传到仓库,需要自己安装)

1:   git clone git@gitee.com:jfinal/jetty-server.git

2:   cd jetty-server

3:  修改  pom.xml 将其中的 2018.12-SNAPSHOT  改成  2018.12,  将最后面的一个 <skip>false</skip> 改成  <skip>true</skip>

4: mvn install 

5: 换掉项目中的 jetty-server 版本更换为  2018.12 

升级后的部分源码如下

image.png



最后:

1.感谢波总及时帮助解决问题

2.强烈推荐加入jfinal俱乐部http://www.jfinal.com/club


评论

  • 10-10 09:31
    分享非常详细到位,问题原因、解决办法全有了,已有两个 shiro 碰到过这个问题,感谢你的分享
  • 10-11 15:59
    为啥我的shiro就没事呢
  • 10-11 18:26
    @老武 这个我就不清楚了,毕竟我没看懂jetty-server的源码,只是波总告诉我有这么个情况导致的
  • 发送