これはあなたの質問に直接答えるものではありませんが、2つのアドバイスがあります。まず、Springを使用していることがわかったので、前の質問で述べたように、JNDIデータソースを検索するために独自の使用をやめることをお勧めします。代わりに、そのためにSpring機能を使用してから、データソースをBeanに挿入する必要があります。JDNIデータソースを取得するには、次のようなSpringを使用します。ServiceLocator
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自体の1つです。本当に知りたい場合は、iPlanetインストールのすべてのjarファイル、特に起動スクリプトで参照されているjarファイルを検索してください。ただし、その後はJNDIの問題に直面することになると思いますので、注意してください。