shiro部分启动报错啊

来源:3-9 基于Apache Shiro权限管理Case实操-1

慕仰6407547

2018-06-15

2018-06-15 15:24:03.197  INFO 17956 --- [           main] utoConfigurationReportLoggingInitializer : 


Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.

2018-06-15 15:24:03.211 ERROR 17956 --- [           main] o.s.boot.SpringApplication               : Application startup failed


org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'methodValidationPostProcessor' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Unsatisfied dependency expressed through method 'methodValidationPostProcessor' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'shiroFilter' defined in class path resource [com/mmall/demo/ShiroConfiguration.class]: Unsatisfied dependency expressed through method 'shiroFilter' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityManager' defined in class path resource [com/mmall/demo/ShiroConfiguration.class]: Unsatisfied dependency expressed through method 'securityManager' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authRealm': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImp': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userMapper' defined in file [E:\demo\target\classes\com\mmall\demo\mapper\UserMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [E:\demo\target\classes\mappers\UserMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [E:\demo\target\classes\mappers\UserMapper.xml]'. Cause: java.lang.IllegalStateException: Mapping is missing column attribute for property name

at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.17.RELEASE.jar:4.3.17.RELEASE]


写回答

4回答

Jimin

2018-06-15

有点问题,是UserMapper.xml里有问题,导致这个类跟着出问题了。本质应该是这句:Mapping is missing column attribute for property name

你的UserMapper.xml里是否有什么字段映射不正确,很大可能是某个标签写的有问题。

1
1
慕仰6407547
非常感谢!
2018-06-15
共1条回复

慕仰6407547

提问者

2018-06-15

十分感谢,确实是xml里有标签写错了,已经解决可以启动了

0
0

慕仰6407547

提问者

2018-06-15

package com.mmall.demo;

import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.LinkedHashMap;

@Configuration
public class ShiroConfiguration {

   @Bean("shiroFilter")
   public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") SecurityManager manager){
       ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
       bean.setSecurityManager(manager);

       bean.setLoginUrl("/login");
       bean.setSuccessUrl("/index");
       bean.setUnauthorizedUrl("/unauthorized");

       LinkedHashMap<String,String> filterChainDefinitionMap = new LinkedHashMap<>();
       filterChainDefinitionMap.put("/index","authc");
       filterChainDefinitionMap.put("login","anon");
       bean.setFilterChainDefinitionMap(filterChainDefinitionMap);

       return bean;
   }

   @Bean("securityManager")
   public SecurityManager securityManager(@Qualifier("authRealm") AuthRealm authRealm){
       DefaultSecurityManager manager = new DefaultSecurityManager();
       manager.setRealm(authRealm);
       return  manager;
   }

   @Bean("authRealm")
   public AuthRealm authRealm(@Qualifier("credentialMatcher") CredentialMatcher matcher){
       AuthRealm authRealm = new AuthRealm();
       authRealm.setCredentialsMatcher(matcher);
       return  authRealm;
   }

   @Bean("credentialMatcher")
   public CredentialMatcher credentialMatcher(){
       return  new CredentialMatcher();
   }


   @Bean
   public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(@Qualifier("securityManager") SecurityManager securityManager){
       AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
       advisor.setSecurityManager(securityManager);
       return  advisor;
   }

   @Bean
   public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){
       DefaultAdvisorAutoProxyCreator creator = new DefaultAdvisorAutoProxyCreator();
       creator.setProxyTargetClass(true);
       return creator;
   }
}

0
0

Jimin

2018-06-15

你好,ShiroConfiguration类代码贴一下,你这异常里很明显说了,这个类有问题,或者你自己再对着视频检查一下
0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程