您的位置:首页 > 数据库 > Redis

Spring Boot+Shiro+Redis(redisson)整合时,采用内嵌tomcat启动错误原因分析

2017-10-09 16:12 1161 查看

启动错误分析以及解决方法

下图为启动报错信息



红色框选中位置是真正错误原因,接下来,查看
java.net.URL
类,发现(如下图红框中代码)



只要
factory
存在,就会抛出异常,猜想可能是由于已经有某个类创建了
factory


通过查看文档,发现
TomcatURLStreamHandlerFactory.disable()
方法表
4000
示不使用默认的Tomcat中创建的
factory
,这里也验证了是由于已经有其他类创建了
factory


通过debug,发现
redisson
(redis的第三方客户端jar,与jedis功能类似)在创建
RedissonClient
类时,执行如下方法



上图是在Config.fromYAML(…)->new ConfigSupport()->URLBuilder.init()中发现,很明显可以看出,在执行init时,会先把
factory
置空,然后再新创建一个
factory
,但是Tomcat创建
factory
时,没有置空,所以出现了冲突问题。

目前测试中,暂未发现加上
TomcatURLStreamHandlerFactory.disable()
后会出现其他问题。

原创文章,转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐