shiro+ssm项目无法访问jsp,目前怀疑shiro配置有问题导致无法注入,但不知道从何下手,大神求解

luoye_rcy 2017-01-06 04:01:53
Error creating bean with name 'shiroFilter' defined in file [D:\Program Files\tomcat8\apache-tomcat-8.0.37\webapps\cloudparking\WEB-INF\classes\applicationContext-shiro.xml]: Cannot resolve reference to bean 'securityManager' while setting bean property 'securityManager';
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="shiroDbRealm" />
<property name="cacheManager" ref="shiroEhcacheManager" />
</bean>

<!-- 項目自定义的Realm, 所有accountService依赖的dao都需要用depends-on声明 -->
<bean id="shiroDbRealm" class="com.dnake.cloudparking.auth.AuthRealm" depends-on="userDao,userWechatDao,parkingTicketDao,userParkingTicketDao,jdbcQueryDao">
<property name="userService" ref="userService" />
</bean>
<!--

<bean id="sessionFilter"
class="com.dnake.cloudparking.auth.SessionFilter"> </bean>
-->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/login" />
<property name="successUrl" value="/index" />
<!--
<property name="filters"> <map> <entry key="sessionFilter"
value-ref="sessionFilter"/> </map> </property>
-->
<property name="filterChainDefinitions">
<value>
/ = anon
/login.jsp= anon
/index.jsp = anon
/login = anon
/syslogin = anon
/loginval = anon
/syslogout = anon
/servlet/AuthImageServlet = anon
/getBackPwdStep* = anon
/backuncheck/** = anon
/weixin/** = anon
/alipay/** = anon
/static/**= anon
/res/** = anon
/api/** = anon
/createScanQrCodeOrder = anon
/weixin/payNotify = anon
/alipay/payNotify = anon
/wxpay_refund_notify = anon
/register/** = anon
/app/* = anon
/parking.jsp = anon
/video.html = anon
/saveParking = anon
/admin/** =roles[admin]
/** = user

</value>
</property>

Error creating bean with name 'securityManager' defined in file [D:\Program Files\tomcat8\apache-tomcat-8.0.37\webapps\cloudparking\WEB-INF\classes\applicationContext-shiro.xml]: Cannot resolve reference to bean 'shiroDbRealm' while setting bean property 'realm';
Error creating bean with name 'shiroDbRealm': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.dnake.cloudparking.service.UserService com.dnake.cloudparking.auth.AuthRealm.userService;
上述为与shiro有关的报错信息以及shiro.xml中我认为有用的内容
Error creating bean with name 'userService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.dnake.cloudparking.dao.UserDao com.dnake.cloudparking.service.impl.UserServiceImpl.userDao;
这段报错信息应该是自动注入报错的地方
我的UserSercieImpl是以@Service注解的
在UserDao 类上加上@Repository注解没有用。。
我的UserDao是接口

求大神解答,实在搞不定

...全文
344 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoye_rcy 2017-01-12
  • 打赏
  • 举报
回复
解决了。只是个数据库连接名写错了的问题。。。搞了两个礼拜真是崩溃
鲨鱼也是鱼 2017-01-06
  • 打赏
  • 举报
回复
你既然说你用注解了 <bean id="shiroDbRealm" class="com.dnake.cloudparking.auth.AuthRealm" depends-on="userDao,userWechatDao,parkingTicketDao,userParkingTicketDao,jdbcQueryDao"> <property name="userService" ref="userService" /> </bean> 这里面的userService 是什么鬼,就算有 你的userService 的bean呢
双子叶 2017-01-06
  • 打赏
  • 举报
回复
引用 3 楼 luoye_rcy 的回复:
[quote=引用 2 楼 shzy1988 的回复:] 你在xml里面添加如下的配置 <bean id='userDao ' class='**.**.userDaoImpl'> <bean id='userService' class='**.**.UserServiceImpl'> <property name="userDao " ref="userDao " /> ..... </bean>
一定要写xxxDaoImpl这个实现类去实现xxxDao吗,直接在xxxDao上用@Responsitory不行吗[/quote] 不是一定要实现接口,这个根据你的框架需要,如mybatis就没有实现接口 你在配置文件中要么都用注解,要么都写在配置文件,向你这样在配置文件引用注解的方式没有用过,不过感觉有问题,你试试吧,将bean的注入也放在配置文件看看会不会报错了。
luoye_rcy 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
用了一次shiro就不想再用了
没办法,别人的项目,我做二次开发,完全不知道shiro是个什么鬼
luoye_rcy 2017-01-06
  • 打赏
  • 举报
回复
引用 2 楼 shzy1988 的回复:
你在xml里面添加如下的配置 <bean id='userDao ' class='**.**.userDaoImpl'> <bean id='userService' class='**.**.UserServiceImpl'> <property name="userDao " ref="userDao " /> ..... </bean>
一定要写xxxDaoImpl这个实现类去实现xxxDao吗,直接在xxxDao上用@Responsitory不行吗
双子叶 2017-01-06
  • 打赏
  • 举报
回复
你在xml里面添加如下的配置 <bean id='userDao ' class='**.**.userDaoImpl'> <bean id='userService' class='**.**.UserServiceImpl'> <property name="userDao " ref="userDao " /> ..... </bean>
李德胜1995 2017-01-06
  • 打赏
  • 举报
回复
用了一次shiro就不想再用了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧