包扫描似乎正在跳过打包在jar文件中的映射文件。
例如:
<mappers>
<!-- Doesn't work when I package my project as a JAR. -->
<package name="testmy.sqlmaps" />
<!-- Works even when mapper files are in a JAR file. -->
<!--mapper class="testmy.sqlmaps.TestMyMapper" /-->
<!--mapper class="testmy.sqlmaps.MySecondMapper" /-->
</mappers>当我通过Eclipse或通过命令行作为“已爆炸的jar”运行项目时,事情会正常工作,但是如果我将应用程序从Eclipse导出为jar,然后通过命令行运行它,则得到以下堆栈跟踪:
org.apache.ibatis.binding.BindingException: Type interface testmy.sqlmaps.TestMyMapper is not known to the MapperRegistry.
at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:675)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:250)
at testmy.dao.TestMyDAO.testMyBatisQuery(TestMyDAO.java:9)
at testmy.batch.TestMybatis.main(TestMybatis.java:17)就好像ResolverUtil跳过了我的应用程序jar,或者不知道在里面寻找好东西。
有什么想法吗?
发布于 2016-02-04 16:46:41
我能够解决这个问题的那种帮助的帮助,迈克提斯用户组。
当在Eclipse中将项目导出为jar文件时,“添加目录条目”复选框在"JAR文件规范“步骤上未选中时会出现此问题。确保复选框被选中,解决了问题。
https://stackoverflow.com/questions/31997159
复制相似问题