MyBatis 3.0.5 и проблема загрузки картографов - PullRequest
5 голосов
/ 26 сентября 2011

Я использую MyBatis 3.0.5, и у меня проблемы с загрузкой картографических ресурсов в качестве ресурсов. Я на Windows 7 64, я использую Eclipse Indigo 64bit и jdk7 64. MyBatis инициализируется в автономном экземпляре Grizzly Web Container (где реализованы службы отдыха с инфраструктурой джерси).

<mappers>
        <mapper
            url="file:///C:/Users/andrea/workspace/soap2rest/src/main/java/com/izs/mybatis/FormMapper.xml" />
        <mapper resource="src/main/java/com/izs/mybatis/FormMapper.xml" />
    </mappers>

У меня такие же мапперы только для тестирования, первый загружен, второй не работает. Ошибки:

org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in src/main/java/com/izs/mybatis/FormMapper.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource src/main/java/com/izs/mybatis/FormMapper.xml
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
    at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:32)
    at com.izs.Main.initMyBatis(Main.java:114)
    at com.izs.Main.main(Main.java:80)
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource src/main/java/com/izs/mybatis/FormMapper.xml
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:85)
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:69)
    at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:30)
    ... 2 more
Caused by: java.io.IOException: Could not find resource src/main/java/com/izs/mybatis/FormMapper.xml
    at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:89)
    at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:76)
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:253)
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:83)
    ... 4 more
Exception in thread "main" java.lang.NullPointerException
    at com.izs.Main.initMyBatis(Main.java:122)
    at com.izs.Main.main(Main.java:80)

Извините за мой английский.

РЕШЕНИЕ: Проектам Maven требуются ресурсы в src / main / resources и src / test / resources для тестов. Поэтому решение состоит в том, чтобы поместить в эти папки xml-мапперы.

1 Ответ

1 голос
/ 27 сентября 2011

Не используйте абсолютные пути.Это делает ваш код непереносимым и неиспользуемым в другой среде.Просто относительно приемлемо.Для вашего примера, я думаю, вы можете использовать следующий относительный путь:

<mapper resource="com/izs/mybatis/FormMapper.xml" />
...