一个*号引发的事故
2017-08-18 13:46
375 查看
使用bubbo远程访问mybatis时,出现了点问题
自定义mapper映射文件时,必须要这么写:正确写法
注意这段代码:
如果是下面这么写:就会出错!并且是本地测试类测试时不会出错,远程调用时会出错,难以理解!错误写法(注意classpath*,这个*号不能少,少了就出错,并且完全注意不到!)
错误写法:
找了一个晚上,没找到原因,远程调用始终失败:
源码注释提供样例:
防不胜防!源码才是王道!
自定义mapper映射文件时,必须要这么写:正确写法
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/> <property name="mapperLocations" value="classpath*:mybatis/mapper/*.xml"/> <property name="typeAliasesPackage" value="com.sunwoda.pojo"/> </bean>
注意这段代码:
<property name="mapperLocations" value="classpath*:mybatis/mapper/*Mapper.xml"/>
如果是下面这么写:就会出错!并且是本地测试类测试时不会出错,远程调用时会出错,难以理解!错误写法(注意classpath*,这个*号不能少,少了就出错,并且完全注意不到!)
错误写法:
<property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/>
找了一个晚上,没找到原因,远程调用始终失败:
017-08-18 13:28:06,704 [DubboServerHandler-192.168.57.1:20880-thread-2] [com.alibaba.dubbo.rpc.filter.ExceptionFilter]-[ERROR] [DUBBO] Got unchecked and undeclared exception which called by 192.168.57.1. service: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:189) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51) at com.sun.proxy.$Proxy21.findByExample(Unknown Source) at com.alibaba.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
源码注释提供样例:
* This is an alternative to specifying "<sqlmapper>" entries in an MyBatis config file. * This property being based on Spring's resource abstraction also allows for specifying * resource patterns here: e.g. "classpath*:sqlmap/*-mapper.xml". */
防不胜防!源码才是王道!
相关文章推荐
- 一个purge参数引发的惨案——从线上hbase数据被删事故说起
- 一个purge参数引发的惨案——从线上hbase数据被删事故说起
- 一个事故引发的思考
- 记一次一个枚举引发线上事故风暴
- 由一个C++问题引发的讨论和思考(未完待续)
- 一个delete和析构函数引发的coredump
- 表单提交后分页页面标签POST实现 —— 一个小小的bug引发的思考
- (Android分包) 一个NoClassDefFoundError引发的血案
- 一个“Spring轮子”引发的“血案”(5)
- html5 touch引发的一个应用以及营销
- 做项目过程中因为一个效果而引发的感想
- 一个知乎问题引发的血案
- 一个JAVA题引发的思考
- 大话JS面向对象之扩展篇 面向对象与面向过程之间的博弈论(OO Vs 过程)------(一个简单的实例引发的沉思)
- 一个“Sprng轮子”引发的“血案”(3)
- 一个时区问题引发的血案
- WiredTiger实现:一个LRU cache深坑引发的分析
- Silverlight Image Source URI : 一个反斜杠引发的血案
- 一个实习生名额引发的bug
- 从一次pga暴涨事故引发对pga的进一步认知