У меня есть следующие в моем applicationaionContext.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>
тогда в моем коде есть:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
SqlMapClient sqlclient = (SqlMapClient) ctx.getBean("myMapClient");
при этом я получаю следующую ошибку:
Ошибка создания бина с именем
'myMapClient' определен в классе
ресурс пути
[applicationContext.xml]: вызов
сбой метода init; вложенными
исключение
java.lang.NoClassDefFoundError:
ком / IPlanet / ИПИ / админ / общие / ASException
Я не понимаю, почему он ищет этот класс? Я пытаюсь сделать все за пределами контейнера. Поэтому он не должен даже искать этот класс ... но, тем не менее, просто чтобы заставить его работать, я попытался найти класс с именем ASException, чтобы я мог поместить его в путь к классам, но нигде не могу найти класс ASException.
Есть указатели?
Изображения трассировки стека и моих библиотек для тестирования / запуска тестов
Редактировать
Решение:
Хотя я думал, что все было за пределами контейнера ... была одна вещь, которой не было за пределами контейнера.
Обратите внимание на свойство configLocation:
<property name="configLocation" value="classpath:sql-map-config-oracle.xml"/>
фактическое содержание sql-map-config-oracle.xml составляет
<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>
Материал JNDI не должен быть там!
sql-map-config-oracle.xml должно быть просто:
<sqlMapConfig>
<settings enhancementEnabled="true" useStatementNamespaces="true" />
<sqlMap resource="somemapping.xml"/>
</sqlMapConfig>