MyBatis 3.0.5를 사용하고 있으며 매퍼를 리소스로로드하는 데 문제가 있습니다. 저는 Windows 7 64, Eclipse Indigo 64bit 및 jdk7 64를 사용합니다. MyBatis는 독립 실행 형 인스턴스 인 Grizzly Web Container (저지 프레임 워크로 나머지 서비스가 구현되는 곳)에서 초기화됩니다.MyBatis 3.0.5 및 매퍼 로딩 문제
<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 맵퍼를이 폴더에 넣는 것입니다.
나는 당신의 동일한 이유로 리소스를 사용하지만 작동하지 않습니다 ... 또한 귀하의 제안을 사용합니다. – raid3n
폴더 구조를 설명해 주시겠습니까? – BrownFurSeal
thx를 도와 주셔서, 나는 classpath src/main/java와 패키지를 가진 Maven 프로젝트를 가지고있다. Main.java 내 src/main/java/com/izs 내에 src/main/java/com/izs/mybatis within FormMapper .xml – raid3n