Estoy migrando de iBatis 2 a MyBatis 3 en un Spring 3.0 entorno. Cuando me intento para implementar la aplicación, o incluso sólo tiene que ejecutar una prueba de JUnit, la configuración de inicialización se produce un tiempo de espera de conexión de error como el siguiente:

Error al crear bean con el nombre de ‘sqlSessionFactory», definidos en la ruta de clase de recursos [testContext-jndi.xml]: Invocación de método init failed; excepciones anidadas es org.apache.ibatis.el generador.BuilderException: Error al crear la instancia de documento. Causa: java.net.ConnectException: Conexión agotado: conectar

Parece una falta de proxy http, pero mi eclipse configuración de proxy siempre han trabajado toda mi otro código. Mi DTD definiciones parecen ser correctas.

Estoy usando la Primavera 3.0.0, y han incluido las siguientes frascos en mi classpath:

  • mybatis-3.2.2.jar
  • mybatis-spring-1.2.0.jar

La correspondiente configuración del resorte es como sigue:

fooContext-data.xml – (esta es la prueba/configuración de recursos. Cuando la implementación de un contenedor web, la de primavera-configurar origen de datos utiliza un JNDI de búsqueda para conseguir las credenciales. Ambos fallar de la misma manera.)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <bean id="dataSourceFoo" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >
        <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS=(PROTOCOL=tcp)(HOST=foo1)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=foo2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=foo.bar.boz)))"/>
        <property name="username" value="fooUser"/>
        <property name="password" value="fooPass"/>             
    </bean>

    <!-- MyBatis stuff -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSourceFoo" />
        <property name="configLocation" value="sqlMapConfig.xml" />
    </bean>

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory" />
    </bean>


</beans>

sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//www.mybatis.org//DTD Config 3.0//EN"
        "http://www.mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <properties resource="ibatis.properties" />

    <mappers>
        <mapper resource="foo/dao/maps/mybatis/SqlMap1.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap2.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap3.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap4.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap5.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap6.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap7.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap8.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap9.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap10.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap11.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap12.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap13.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap14.xml"/>
        <mapper resource="foo/dao/maps/mybatis/SqlMap15.xml"/>
    </mappers>

</configuration>

Me di cuenta de que algunos otros estaban teniendo este problema, y se relacionó con la que algo está mal con la DTD de la myBatis xml, o tener una mala conexión de red, lo que les impide tirar hacia abajo de la DTD definición. No veo cómo yo podría tener este problema, ya que todas estas bases que parecen estar cubiertas en mi escenario.

He estado en este problema durante un día y medio, después de azotarle la documentación de MyBatis, y MyBatis-la Primavera, así como una buena parte de este sitio y otros. Cualquier idea se agradece.

InformationsquelleAutor Ross D | 2013-08-09

1 Comentario

  1. 1

    He encontrado la respuesta a este problema en el myBatis los usuarios del sitio aquí:
    DTD verificación cuando http://www.mybatis.org está abajo

    Resulta que mi DTD enlaces que se supone que no tienen www delante de ellos. Es decir, en lugar de:

        <!DOCTYPE configuration
            PUBLIC "-//www.mybatis.org//DTD Config 3.0//EN"
            "http://www.mybatis.org/dtd/mybatis-3-config.dtd">

    se supone que iban a leer:

        <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">

    Los cambié, y ahora funciona.

Dejar respuesta

Please enter your comment!
Please enter your name here