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.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse à ce problème sur le myBatis utilisateurs du site ici:
DTD vérification lorsque http://www.mybatis.org est bas
S'avère que mon DTD liens n'étaient pas censés avoir www en face d'eux. C'est, au lieu de:
ils étaient censés lire:
Je les ai modifiées, et maintenant ça fonctionne.