最近做cxf+spring+mybatis集成的一个小例子,用maven打包后,mybatis的sql语句老是调不到。 报以下错误:
javax.xml.ws.soap.SOAPFaultException: Invalid bound statement (not found)
原来是项目maven打包并未把mybatis对应的Dao类.xml copy进去,sqlSessionFactory里面并未注册实体dao里面的sql语句,所以执行出现Invalid bound statement 。
maven下pom.xml 默认并不打包项目src下xml,properties等配置文件的。
需要加以下代码:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!-- 是否替换资源中的属性-->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<!--
<includes> <include>**/*.properties</include>
<include>**/*.xml</include> </includes> <filtering>true</filtering>
-->
</resource>
</resources>
转自:http://cry615.iteye.com/blog/1879148
本文详细介绍了在使用Maven打包项目时,由于默认设置未将src目录下的XML配置文件打包到最终的JAR包中,导致MyBatis无法正确加载SQL语句,引发InvalidBoundStatement错误的解决方案。通过调整pom.xml文件中的resources配置,可以确保所有必要的配置文件被正确打包,从而避免此类问题。

762

被折叠的 条评论
为什么被折叠?



