2011-05-13 196 views
1

我是MyBatis的新手。mybatis配置問題

我一直在嘗試在web服務中配置mybatis我正在寫,但沒有運氣。

我所做的已經是,

  1. UserInfoMapper接口
  2. UserInfoMapper.xml與映射器的命名空間與我UserInfoMapper接口和選擇
  3. 的MyBatis-config.xml中與typeAlias作爲結果使用在UserInfoMapper.xml中輸入
  4. datasourceContext.xml中的oracle數據源bean(我已連接)
  5. org.mybatis.spring.mapper.MapperScannerConfigurer bean with basePackag e指向我datasourceContext.xml中的UserInfoMapper接口
  6. sqlSessionFactory bean ie。 org.mybatis.spring.SqlSessionFactoryBean具有我的dataSource和configLocation屬性
  7. userInfoMapper bean即。 org.mybatis.spring.mapper.MapperFactoryBean在datasourceContext.xml中具有屬性mapperInterface(value =「is.simnn.act.web.ngs.persistence.UserInfoMapper」)和sqlSessionFactory屬性(ref =「sqlSessionFactory」)
  8. 然後我的applicationContext.xml我有以下,

<import resource="classpath:META-INF/wsContext.xml" /> 
<import resource="classpath:META-INF/db/datasourceContext.xml" /> 

在我的測試情況下,我不斷收到NullPointerException異常,當我打電話JAXWS:端點,它使我對我UserInfoMapper接口。

任何想法或提示什麼可能是我的配置錯?

感謝, Gunnlaugur

回答

0

這是很難,而無需更多的信息發表評論。你能發佈你的UserInfoMapper.java接口,你的UserInfoMapper.xml和你的堆棧跟蹤嗎?您確定界面中的方法名稱與您在XML中的SELECT的ID相匹配嗎?

+0

嗨,馬克,這裏是我的xml <映射器命名空間= 「is.simnn.act.web.ngs.mappers.UserInfoMapper」> \t <選擇的id = 「getUserInfoBySnb」 參數類型= 「字符串」 與resultType = 「用戶信息」 > \t \t SELECT \t \t \t port.snb, \t \t \t port.timestamp, \t \t \t port.user_type, \t \t \t port.real_exch, \t \t \t port.act_exch, \t \t \t port.dev_type, \t \t \t端口。RC \t \t FROM \t \t \t端口 \t \t WHERE \t \t \t port.snb =#{} SNB \t 這是我的接口公共接口UserInfoMapper { \t公衆的UserInfo getUserInfoBySnb(字符串SNB) ; \t public UserInfo getAllUserInfoBySnb(String snb); \t public UserInfo getUserInfoByImsi(String imsi); } – Gunnlaugur 2011-05-17 08:30:28

+0

好吧,我設法擺脫了NullPointerException,但現在我得到了java.lang.IllegalArgumentException:Mapped Statements集合不包含is.simnn.act.web.ngs.mappers.UserInfoMapper.getUserInfoBySnb的值。我正在使用mybatis-spring-1.0.1-SNAPSHOT和mybatis-3.0.5-SNAPSHOT。 – Gunnlaugur 2011-05-17 08:38:58

+0

XML中的resultType'userInfo'是一個typeAlias?如果不是,則需要用完整的包名稱命名結果類型類:com.your.package.UserInfo。您也可以嘗試將註釋'@Param(「snb」)'添加到您的UserInfoMapper接口,例如'public UserInfo getUserInfoBySnb(@Param(「snb」)String snb)' – Mark 2011-05-18 14:17:14