求助!mybatis 异常Mapped Statements collection does not contain value for

爱菇狸 2018-09-26 07:40:06
先别喷这个低级错误。
在发问之前就Google了n遍。才来求助的。

先贴一下我的环境:
MyBatis.jar: 3.2.8
mybatis-spring.jar:1.2.2
idea 2018.1+ maven 3.5.4

再说一下我公司项目的配置方法。很多个maven模块(估计几百个,很绝望),但是只有四个spring的applicationContext.xml配置文件,四个配置文件里重复四次配置mybatis接口的扫描路径(写法一模一样,不知道是不是这个导致的)。引入的mybatis-config.xml里完全没有配置任何mapper。
不知道什么原因。有人知道什么原因吗?跪求一个真理。



完整的异常信息:
26-Sep-2018 12:50:25.754 严重 [http-apr-8380-exec-8] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springMvc] in context with path [] threw exception [org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for *.*.tip.schedule.dao.impl.mybatis.ScheduleMapper.selectByParameter
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for *.*.tip.schedule.dao.impl.mybatis.ScheduleMapper.selectByParameter] with root cause
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for *.*.tip.schedule.dao.impl.mybatis.ScheduleMapper.selectByParameter
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:797)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:631)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:624)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
at com.sun.proxy.$Proxy21.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:198)
at *.*.sip.core.jdbc.MybatisDao.selectList(MybatisDao.java:107)
at *.*.tip.schedule.dao.impl.mybatis.ScheduleDao.findAll(ScheduleDao.java:71)
at *.*.tip.schedule.service.impl.ScheduleServiceImpl.findSchedules(ScheduleServiceImpl.java:109)
at *.*.tip.schedule.service.impl.ScheduleServiceImpl$$FastClassBySpringCGLIB$$9d077dc4.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:717)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)
at *.*.tip.schedule.service.impl.ScheduleServiceImpl$$EnhancerBySpringCGLIB$$e06c5291.findSchedules(<generated>)
at *.*.ncts.schedule.utils.ScheduleMessageUtils.sendScheduleMessageOnLogin(ScheduleMessageUtils.java:66)
at *.*.ncts.shiro.filter.AuthenticationCasFilter.onLoginSuccess(AuthenticationCasFilter.java:55)
at *.*.sip.auth.filter.AbstractAuthenticationCasFilter.onLoginSuccess(AbstractAuthenticationCasFilter.java:30)
at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:54)
at org.apache.shiro.cas.CasFilter.onAccessDenied(CasFilter.java:85)
at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133)
at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162)
at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203)
at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:100)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1152)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2527)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2516)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

...全文
472 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱菇狸 2018-09-30
  • 打赏
  • 举报
回复
别沉啊。。顶一波
verejava 2018-09-27
  • 打赏
  • 举报
回复
爱菇狸 2018-09-27
  • 打赏
  • 举报
回复
能用,但是公司的接口是自己封装了SqlSession做的一个MybatisDao类,本质上是实现MybatisDao,以代码的方式去获取xml中的namespace和sql语句的id。。。而且忘了说,在eclipse -mars 版本上,项目却可以运行。。实在是很奇怪的一个异常。在iIDEA上却报错,很神奇的错误。再不行估计都要去官网提问一下了。
天命ming 2018-09-27
  • 打赏
  • 举报
回复
我想你公司的其他用mybatis接口应该能用的吧,如果能用,那么肯定就是你哪里的命名或者路径不正确吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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