проблема с конфигурацией mybatis

Я новичок в MyBatis.

Я пытался настроить mybatis в веб-сервисе, который я пишу, но пока безуспешно.

То, что я уже сделал,

  1. UserInfoMapper интерфейс
  2. UserInfoMapper.xml с пространством имен сопоставителя с моим интерфейсом UserInfoMapper и выбором
  3. mybatis-config.xml с typeAlias ​​для использования в качестве типа результата в UserInfoMapper.xml
  4. bean-компонент dataSource для oracle (я подключаюсь) в datasourceContext.xml
  5. org.mybatis.spring.mapper.MapperScannerConfigurer bean с basePackage, указывающим на мой интерфейс UserInfoMapper в datasourceContext.xml
  6. Компонент sqlSessionFactory, т.е. org.mybatis.spring.SqlSessionFactoryBean со свойством для моего источника данных и configLocation
  7. bean-компонент userInfoMapper, т.е. org.mybatis.spring.mapper.MapperFactoryBean со свойством mapperInterface (value = "is.simnn.act.web.ngs.persistence.UserInfoMapper") и свойством sqlSessionFactory (ref = "sqlSessionFactory") в datasourceContext.xml
  8. то в моем applicationContext.xml у меня есть следующее,

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

In my test case I keep getting NullPointerException when I call jaxws:endpoint and it leads me to my UserInfoMapper interface.

Есть идеи или намеки на то, что может быть не так с моей конфигурацией?

Спасибо, Gunnlaugur


person Gunnlaugur    schedule 13.05.2011    source источник


Ответы (1)


Трудно комментировать, не имея дополнительной информации. Не могли бы вы опубликовать свой интерфейс UserInfoMapper.java, свой UserInfoMapper.xml и трассировку стека, пожалуйста? Вы уверены, что имя метода в вашем интерфейсе соответствует идентификатору вашего SELECT в XML?

person Mark    schedule 16.05.2011
comment
Привет, Марк, вот мое пространство имен xml ‹mapper = is.simnn.act.web.ngs.mappers.UserInfoMapper› ‹select id = getUserInfoBySnb parameterType = string resultType = userInfo› SELECT port.snb, port.timestamp, port.user_type, port.real_exch, port.act_exch, port.dev_type, port.rc ОТ порта ГДЕ port.snb = # {snb} ‹/select› ‹/mapper› А это мой общедоступный интерфейс UserInfoMapper {public UserInfo getUserInfoBySnb (String snb) ; общедоступный UserInfo getAllUserInfoBySnb (String snb); общедоступный UserInfo getUserInfoByImsi (String imsi); } - person Gunnlaugur; 17.05.2011
comment
Хорошо, мне удалось избавиться от исключения 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. - person Gunnlaugur; 17.05.2011
comment
Является ли resultType userInfo в вашем XML typeAlias? Если нет, вам нужно будет назвать свой класс типа результата полным именем пакета: com.your.package.UserInfo. Также вы можете попробовать добавить аннотацию @Param("snb") в свой интерфейс UserInfoMapper, например. public UserInfo getUserInfoBySnb(@Param("snb") String snb) - person Mark; 18.05.2011