org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map
問題描述:
今天下午除錯程式碼的時候突然發現,本來上午跑得好好的程式碼跑不起來了,一呼叫mybatis運算元據庫就會丟擲異常,之前跑得正常的也跟著拋異常,具體的異常資訊如下:
[ERROR] 14:32:37.904 [qtp1332439166-17] c.h.i.m.c.c.MachineMonitorController - getHistoryMachineMonitorList
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy57.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:158)
at com.jiankunking.cockpit.dao.MachineIndexCountDao.getMachineMonitorDaysList1(MachineIndexCountDao.java:42)
at com.jiankunking.cockpit.dao.MachineIndexCountDao$$FastClassBySpringCGLIB$$c7526109.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)
at com.jiankunking.cockpit.dao.MachineIndexCountDao$$EnhancerBySpringCGLIB$$19cac250.getMachineMonitorDaysList1(<generated>)
at com.jiankunking.cockpit.impl.MachineIndexCountImpl.getMachineMonitorDaysList1(MachineIndexCountImpl.java:42)
at com.jiankunking.cockpit.controller.MachineMonitorController.getHistoryMachineMonitorList(MachineMonitorController.java:52)
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.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:206)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1561)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:122)
at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.invoke(ExecutingExecutionStrategy.java:58)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:201)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produce(ExecuteProduceConsume.java:97)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:346)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:290)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:775)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:706)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:701)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:71)
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:433)
... 83 common frames omitted
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.util.Map
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:875)
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:627)
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:344)
... 97 common frames omitted
[DEBUG] 14:32:37.991 [qtp1332439166-17] org.eclipse.jetty.server.HttpChannel - sendResponse info=null content=DirectByteBuffer@5c419899[p=0,l=80,c=32768,r=80]={<<<{"data":null,"cod...Success":false}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} complete=false committing=true callback=Blocker@49703ab8{null}
[DEBUG] 14:32:37.992 [qtp1332439166-17] org.eclipse.jetty.server.HttpChannel - COMMIT for /api/machineMonitor on HttpChannelOverHttp@5cadbcc6{r=1,c=true,a=DISPATCHED,uri=//localhost:9091/api/machineMonitor?hostName=10.110.10.10&end=1495681200&start=1495594800&timeUnit=day}
200 null HTTP/1.1
Date: Thu, 25 May 2017 06:32:32 GMT
X-Application-Context: application:9091
Content-Type: application/json;charset=utf-8
見到異常於是上網搜尋異常,網上說:mybatis xml 返回型別應該如下這種寫法:
resultType="java.util.Map"
我看了一下我呼叫的方法AAAAAAAA,具體程式碼如下:
<select id="AAAAAAAA" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
*
FROM
tableA
WHERE
`task_time` <= #{start} AND
`task_time` >= #{end}
</select>
完全符合要求啊。
好詭異啊,難道是maven依賴問題?
我清理maven環境,也不行。
最後木有辦法,回滾程式碼到昨天的版本,問題好了。
於是,逐段新增程式碼,測試,最後發現問題不是出來我呼叫的方法AAAAAAAA上,而是另外一個mybatis檔案中有個返回型別寫的是:
resultMap=”java.util.Map”,具體錯誤程式碼如下:
<select id="bbbbbb" parameterType="java.util.Map" resultMap="java.util.Map">
SELECT
*
FROM
tableB
WHERE
module_id = #{item} AND create_time >= #{start} AND create_time <= #{end}
</select>
修改方法bbbbbb的返回型別,問題消失。
該問題排查麻煩的原因在於,我根本沒有呼叫bbbbbb方法,而且編譯也正常,還好最後解決了問題。
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- nested exception is IncompleteElementException: Could not find parameter mapException
- Fatal error: Uncaught PDOException: could not find driverErrorException
- Could not find the main class. Program will exitAI
- Could not find *.apk!解決辦法APK
- Map all result column from TIBCO JDBC QueryJDBC
- Could not find a suitable set of interfaces for VIPs.UI
- vue3 Could not find a declaration file for moduleVue
- forEach、map、filter、find、sort、find等易錯點整理Filter
- Could not find jar tool executable問題解決JAR
- OGG-00446 ERROR: Could not find archived logErrorHive
- jar檔案could not find the main class解決JARAI
- 錯誤 - Could not find the index entry for RIDIndex
- VueX Vue: Could not find a declaration file for module vuex.Vue
- ogg GGS ERROR 500 Could not find archived logErrorHive
- SQL error 2812: Could not find stored procedure.docSQLError
- cmake報錯CMake Error: Could not find CMAKE_ROOTError
- 關於 artisan migrants Could not find drive 解決方法
- Helper Devise: could not find the `Warden::Proxy` instance on request environmentdev
- master bug InnoDB Error unlock row could not find a 4 mode lockASTError
- Could not find first log file name in binary log index fileIndex
- FATAL ERROR: Could not find ./bin/my_print_defaults 解決方法Error
- 請教:castor MappingException: Could not find the class異常ASTAPPException
- 解決CocoaPods could not find compatible versions for pod "React/Core"React
- PostgreSQL pg_rewind例項--could not find previous WAL record at %X/%XSQL
- This application failed to start because it could not find or load the Qt platform plugin “windows“APPAIQTPlatformPluginWindows
- java.lang.IllegalArgumentException: Could not find class異常解決方式JavaException
- Application failed to start because it could not find or load the QT platform plugin “windows”APPAIQTPlatformPluginWindows
- Error:Could not find com.android.tools.build:gradle:2.2.2.ErrorAndroidUIGradle
- mount iso檔案的時候提示Could not find any loop deviceOOPdev
- iOS-拉outlet到程式碼區錯誤:Could not insert new outlet connection: Could not find any...iOS
- Could not find or access '/etc/ansible/bin/cfssljson /etc/ansible/bin/cfsslJSON
- 引入第三方庫報錯Could not find method apt() for argumentsAPT
- forEach、map、filter、find、sort、some等易錯點整理Filter
- Error:map.xml could only be replicated to 0 nodes instead of minReplication (=1)ErrorXML
- nancy Unable to find view engine that could render the view 無法找到檢視模板引擎NaNView
- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator (valid values:ErroriOS
- Could not find a version that satisfies the requirement py4j (from versions: ) No matching distributUIREM
- java編譯 Error: Could not find or load main class java執行包main方法Java編譯ErrorAI