Это не дает прямого ответа на ваш вопрос, но у меня есть два совета. Во-первых, теперь, когда я знаю, что вы используете Spring, я бы предложил остановить , используя ваш собственный ServiceLocator
для поиска источника данных JNDI, как вы упоминали в предыдущем вопросе . Вместо этого вы должны использовать средства Spring для этого, а затем внедрить источник данных в ваши bean-компоненты. Чтобы получить источник данных JDNI, используйте Spring's JndiObjectFactoryBean
, что-то вроде этого:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:/comp/env/jdbc/myDS</value>
</property>
</bean>
Затем, при работе вне контейнера (обычно при выполнении тестов), мой совет будет не использовать источник данных JNDI. Вместо этого вам следует использовать средства Spring для предоставления источника данных вашим DAO другим способом (например, используя DriverManagerDataSource
, вам не нужен реальный пул соединений при выполнении тестов). Это позволит вам запускать тесты без запуска iPlanet, что имеет смысл для тестирования (и вы не хотите тестировать пул соединений iPlanet, вы хотите тестировать свои DAO).
Итак, создайте applicationContext-test.xml
, который будет использоваться во время тестирования с другой конфигурацией для доступа к данным. Ниже приведен пример конфигурации для DriverManagerDataSource
:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="..."/>
<property name="url" value="..."/>
<property name="username" value="..."/>
<property name="password" value="..."/>
</bean>
Это действительно рекомендуемый подход (подробнее см. В главе Доступ к данным с использованием JDBC ).
PS: Понятия не имею, откуда взялся com/iplanet/ias/admin/common/ASException
, но это, очевидно, один из iPlanet. Если вы действительно хотите это выяснить, выполните поиск во всех банках установки iPlanet, особенно в том, что указано в скрипте запуска. Но я думаю, что «после этого вы столкнетесь с проблемами JNDI, будьте осторожны».