J'ai ce qui suit dans mon applicaionContext.xml
<bean id="IbatisDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@123.210.85.56:1522:ORCL"/>
<property name="username" value="mydb"/>
<property name="password" value="mydbpwd"/>
</bean>
<bean id="myMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sql-map-config-oracle.xml"/>
<property name="dataSource" ref="IbatisDataSource"/>
</bean>
alors dans mon code j'ai :
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
SqlMapClient sqlclient = (SqlMapClient) ctx.getBean("myMapClient");
En procédant ainsi, j'obtiens l'erreur suivante :
Erreur lors de la création d'un bean avec le nom myMapClient' défini dans la classe ressource du chemin [applicationContext.xml] : Invocation de la méthode init a échoué ; l'exception imbriquée exception est java.lang.NoClassDefFoundError : com/iplanet/ias/admin/common/ASException
Je ne comprends pas pourquoi il cherche cette classe ? J'essaie de tout faire en dehors du conteneur. Donc il ne devrait même pas chercher cette classe... mais néanmoins, juste pour que ça marche, j'ai essayé de chercher une classe appelée ASException pour pouvoir la mettre dans le classpath mais je n'ai pas trouvé la classe ASException.
Des conseils ?
Images de la trace de la pile et de mes librairies de test de compilation et de test d'exécution.
Modifier Solution : Même si je pensais que tout était à l'extérieur du conteneur... il y avait UNE chose qui n'était pas à l'extérieur du conteneur.
Remarquez la propriété configLocation :
<property name="configLocation" value="classpath:sql-map-config-oracle.xml"/>
Le contenu réel de sql-map-config-oracle.xml est le suivant
<sqlMapConfig>
<settings enhancementEnabled="true" useStatementNamespaces="true" />
<transactionManager type="JDBC">
<dataSource type="JNDI">
<property name="DataSource" value="my/jndi/mydb" />
</dataSource>
</transactionManager>
<sqlMap resource="somemapping.xml"/>
</sqlMapConfig>
Le matériel JNDI n'a pas besoin d'être là !
sql-map-config-oracle.xml devrait simplement être :
<sqlMapConfig>
<settings enhancementEnabled="true" useStatementNamespaces="true" />
<sqlMap resource="somemapping.xml"/>
</sqlMapConfig>