com iplanet ias JAR - PullRequest
       26

com iplanet ias JAR

0 голосов
/ 12 ноября 2009

Я боролся с этим последние пару дней. Я пытаюсь проверить DAO вне контейнера, но во время выполнения контрольного примера я получаю сообщение об ошибке:

Ошибка создания бина с именем 'SqlMapClient' определен в классе ресурс пути [applicationContext.xml]: вызов сбой метода init; вложенными исключение java.lang.NoClassDefFoundError: ком / IPlanet / ИПИ / админ / общие / ASException

Я использую NB для запуска тестов. люди говорили, что мне нужно, чтобы вышеупомянутый класс был в пути класса времени выполнения тестового примера. Однако я абсолютно не могу найти, где на самом деле эта банка ... Я включил все jar-файлы, которые находятся в моих контейнерах classpath + jars в папке lib моих проектов, в classpath времени выполнения модульного теста. Тем не менее я получаю ту же ошибку.

Также поиск в Google для этого JAR тоже не работал

Может быть, кто-то там знает, где взять эту чертову банку. И, надеюсь, это исправило мои проблемы.

1 Ответ

2 голосов
/ 12 ноября 2009

Это не дает прямого ответа на ваш вопрос, но у меня есть два совета. Во-первых, теперь, когда я знаю, что вы используете 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, будьте осторожны».

...