将Mybatis的xml和service接口及实例打jar包后,其服务请求时报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
eclipse导出jar包时需要勾选“add directory entries”,如图:
按道理是注解找不到造成的,例如@Service、@Controller等,在打成jar包之前,是可以扫描到的,但是打成jar包之后,就扫描不到了,报NoSuchBeanException 。
但是我遇到的情况是ctrl可以正常加载,甚至mapper在log里也可以看到被正常加载了。访问时就包Invalid bound statement错误。
网上看有的连ctrl都注册不上,不过勾选了后打成jar,copy到工程再引入是可以的。
两种方式打包,解压jar后看不出有任何区别。
使用jdk命令,可以看出勾选了的jar包多了些路径信息:
>jar tf xxx.jar
-------------------------------
遇到问题:
1、开始以为注解识别不了,把java源码也打进去就行了。实验失败
2、将ctrl打进jar包,service和mapper放源码到工程里。成功
参考:参考