包扫描似乎正在跳过打包在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,要么不知道向内部寻找好东西。
有什么想法吗?
答案 0 :(得分:0)
我能够在Mybatis用户组的帮助下解决问题。
当&#34;添加目录条目&#34;时会出现此问题。复选框未选中&#34; JAR文件规范&#34;在Eclipse中将项目导出为jar文件时执行步骤。确保选中复选框解决了问题。