最近做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等配置文件的。
需要在 <build>元素中加以下代码
- <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>
一个小问题耗了很长时间,得多多长记心了!