Spring-Cloud-Cli icon indicating copy to clipboard operation
Spring-Cloud-Cli copied to clipboard

ZuulApplication Bug

Open billho opened this issue 5 years ago • 2 comments

运行 CloudDockerZuulApplication 时,报错: 如何解决?

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'factory': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException: chainDefinition cannot be null or empty. at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:185) ~[spring-beans-4.3.17.RELEASE.jar:4.3.17.RELEASE] at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.3.17.RELEASE.jar:4.3.17.RELEASE]

billho avatar Mar 06 '19 15:03 billho

@billho 与您遇到了相似的问题。但是我的提示是 2019-03-15 13:49:48.030 ERROR [cloud-zuul,,,] 5676 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'shiroFilter': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException: chainDefinition cannot be null or empty.

ShiroService.java中片段代码

List<PermissionRole> roles = userDao.getAllRolesByPermission(); for (PermissionRole role : roles){ filterRuleMap.put(role.getPermissionUrl(),role.getRoleName()); }

我是把PostgreSQL 直接改成了MySQL 其中有一个String_agg聚合函数直接让我改成了group_concat,可能是因为这个的原因导致查询 Shiro中要过滤的路径和权限中RoleName中就有NULL值。我将上述代码修改成

List<PermissionRole> roles = userDao.getAllRolesByPermission(); for (PermissionRole role : roles){ if (role.getRoleName() != null && role.getPermissionUrl() != null) { filterRuleMap.put(role.getPermissionUrl(),role.getRoleName()); } }

就不会出现 nested exception is java.lang.NullPointerException: chainDefinition cannot be null or empty.

的错误。或许不是最佳的解决办法,希望可以提供给您一点思路

gwsh1234 avatar Mar 15 '19 06:03 gwsh1234

更改后的版本已解决这个问题,最新版将数据源修改为mysql,并修改聚合函数

xuyaohui avatar Apr 24 '19 03:04 xuyaohui