2021-05-30 09:00:55.105 ERROR 784 --- [nio-8081-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool] with root cause
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_281]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) ~[na:1.8.0_281]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) ~[na:1.8.0_281]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) ~[na:1.8.0_281]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_281]
at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_281]
at redis.clients.jedis.Connection.connect(Connection.java:184) ~[jedis-2.9.3.jar:na]
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:101) ~[jedis-2.9.3.jar:na]
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1844) ~[jedis-2.9.3.jar:na]
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) ~[jedis-2.9.3.jar:na]
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:918) ~[commons-pool2-2.9.0.jar:2.9.0]
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:431) ~[commons-pool2-2.9.0.jar:2.9.0]
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356) ~[commons-pool2-2.9.0.jar:2.9.0]
at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.9.3.jar:na]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) ~[jedis-2.9.3.jar:na]
at org.crazycake.shiro.RedisManager.getJedis(RedisManager.java:35) ~[shiro-redis-3.2.0.jar:na]
at org.crazycake.shiro.WorkAloneRedisManager.set(WorkAloneRedisManager.java:71) ~[shiro-redis-3.2.0.jar:na]
at org.crazycake.shiro.RedisSessionDAO.saveSession(RedisSessionDAO.java:73) ~[shiro-redis-3.2.0.jar:na]
at org.crazycake.shiro.RedisSessionDAO.doCreate(RedisSessionDAO.java:124) ~[shiro-redis-3.2.0.jar:na]
at org.apache.shiro.session.mgt.eis.AbstractSessionDAO.create(AbstractSessionDAO.java:116) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.session.mgt.DefaultSessionManager.create(DefaultSessionManager.java:177) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.session.mgt.DefaultSessionManager.doCreateSession(DefaultSessionManager.java:158) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.createSession(AbstractValidatingSessionManager.java:136) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.session.mgt.AbstractNativeSessionManager.start(AbstractNativeSessionManager.java:99) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.SessionsSecurityManager.start(SessionsSecurityManager.java:152) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:336) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:312) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSubjectDAO.mergePrincipals(DefaultSubjectDAO.java:204) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSubjectDAO.saveToSession(DefaultSubjectDAO.java:166) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSubjectDAO.save(DefaultSubjectDAO.java:147) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSecurityManager.save(DefaultSecurityManager.java:383) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:350) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:183) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:283) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) ~[shiro-core-1.3.2.jar:1.3.2]
at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at com.hhk.reactproject.shiro.JwtFilter.onAccessDenied(JwtFilter.java:51) ~[classes/:na]
at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at com.hhk.reactproject.shiro.JwtFilter.preHandle(JwtFilter.java:82) ~[classes/:na]
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) ~[shiro-web-1.4.0-RC2.jar:1.4.0-RC2]
at org.apache.shiro.web.servlet.AbstractShiroFilter1.call(AbstractShiroFilter.java:365) [shiro−web−1.4.0−RC2.jar:1.4.0−RC2]atorg.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro−core−1.3.2.jar:1.3.2]atorg.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro−core−1.3.2.jar:1.3.2]atorg.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro−core−1.3.2.jar:1.3.2]atorg.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro−web−1.4.0−RC2.jar:1.4.0−RC2]atorg.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro−web−1.4.0−RC2.jar:1.4.0−RC2]atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring−web−5.3.7.jar:5.3.7]atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring−web−5.3.7.jar:5.3.7]atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring−web−5.3.7.jar:5.3.7]atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring−web−5.3.7.jar:5.3.7]atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring−web−5.3.7.jar:5.3.7]atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring−web−5.3.7.jar:5.3.7]atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.coyote.AbstractProtocolConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.tomcat.util.net.NioEndpointSocketProcessor.doRun(NioEndpoint.java:1707)[tomcat−embed−core−9.0.46.jar:9.0.46]atorg.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)[tomcat−embed−core−9.0.46.jar:9.0.46]atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0281]atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) [na:1.8.0_281]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.46.jar:9.0.46]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_281]
从上日志的有色标注描述可以知道是没有把redis服务器打开,检查一下,果不其然,压根没安装
解决方案:
我本地安装了brew所以直接运行命令:brew install redis即可安装,最后运行:redis-server /usr/local/etc/redis.conf即可启动redis服务器,问题解决;
ps:在mac系统下强烈推荐安装brew,这个插件会帮我们完成复杂的环境配置工作