MyBatis-Printemps: SqlSessionFactoryBean initialisation: délai d'attente de connexion

Je suis la migration à partir d'iBatis 2 à MyBatis 3 dans un Printemps 3.0 de l'environnement. Lorsque je tente de déployer l'application, ou même simplement d'exécuter un test JUnit, la config de l'initialisation échoue avec une erreur de délai de connexion comme suit:

Erreur lors de la création de haricots avec le nom "sqlSessionFactory" défini dans le chemin de classe de ressource [testContext-jndi.xml]: Invocation de la méthode d'initialisation a échoué; nested exception est org.apache.ibatis.générateur de rapports.BuilderException: Erreur de la création d'une instance de document. Cause: java.net.ConnectException: Connection timed out: connect

Il ressemble à un manque de proxy http, mais mon eclipse paramètres de proxy ont toujours travaillé pour tout le reste de mon code. Mon définitions DTD semblent correctes.

Je suis à l'aide de Printemps 3.0.0, et ont été les suivantes pots dans mon classpath:

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

Pertinentes printemps de configuration est comme suit:

fooContext-data.xml - (c'est le test/configuration des ressources. Lors du déploiement d'un conteneur web, le printemps-configuré source de données utilise une recherche JNDI pour obtenir des informations d'identification. Ils ont tous deux échouent de la même façon.)

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

J'ai remarqué que quelques autres personnes ont eu ce problème, et elle était liée à quelque chose de mal avec la DTD de la myBatis xml, ou avoir une mauvaise connexion réseau, les empêchant de tirer vers le bas la définition DTD. Je ne vois pas comment je pourrais avoir ce problème, comme tous ces bases semblent être couverts dans mon scénario.

J'ai été à ce problème pour un jour et demi, après avoir fait flageller la documentation de MyBatis, et MyBatis-Printemps, ainsi qu'une bonne partie de ce site et d'autres. Toutes les idées seront les bienvenues.

InformationsquelleAutor Ross D | 2013-08-09