2011-09-26 21 views
5

Estoy usando MyBatis 3.0.5 y tengo problemas con la carga de mapeadores como recursos. Estoy en Windows 7 64, uso Eclipse Indigo 64bit y jdk7 64. MyBatis se inicializa en un Grizzly Web Container (donde se implementan servicios de descanso con jersey framework) instancia independiente.MyBatis 3.0.5 y mapeadores problema de carga

<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> 

tengo los mismos creadores de mapas única para las pruebas, la primera se carga, el segundo no funciona. Errores:

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) 

Lo siento por mi inglés.

SOLUCIÓN: Los proyectos de Maven quieren recursos en src/main/resources y src/test/resources para las pruebas. Entonces la solución es poner los mapeadores xml en estas carpetas.

Respuesta

1

No utilice rutas absolutas. Hace que su código sea poco práctico y no se use en otro entorno. Solo relativo aceptable. Para su ejemplo, supongo que puede utilizar la siguiente ruta relativa:

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

Me gustaría utilizar los recursos por las mismas razones, pero no funcionan ... también con su sugerencia. – raid3n

+0

¿Podría describir qué estructura de carpetas tiene? – BrownFurSeal

+0

thx para ayudar, tengo un proyecto de Maven con classpath src/main/java y los paquetes: src/main/java/com/izs en Main.java src/main/java/com/izs/mybatis dentro de FormMapper .xml – raid3n

Cuestiones relacionadas