gpt4 book ai didi

java - com iplanet ias JAR

转载 作者:行者123 更新时间:2023-12-02 08:36:08 24 4
gpt4 key购买 nike

这几天我一直在为这个问题苦苦挣扎。我正在尝试在容器外部测试 DAO,但在运行测试用例时出现错误:

Error creating bean with name 'SqlMapClient' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/iplanet/ias/admin/common/ASException

我正在使用 NB 来运行测试。人们一直在说我需要将上面的类放在测试用例的运行时类路径中。但是,我绝对找不到那个 jar 到底在哪里......?我已将容器类路径上的所有 jars + 项目 lib 文件夹中的 jars 包含到单元测试的运行时类路径中。我仍然遇到同样的错误。

谷歌搜索这个 JAR 也不起作用。

也许有人知道从哪里得到这个怪异的 jar 。希望这能解决我的问题。

最佳答案

这并不能直接回答你的问题,但我有两个建议。首先,既然我知道您正在使用 Spring,我建议您停止使用您自己的 ServiceLocator 来查找 JNDI 数据源,正如您在之前的 question 中提到的那样。 。相反,您应该使用 Spring 工具,然后将数据源注入(inject)到您的 bean 中。要获取 JDNI 数据源,请使用 Spring 的 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>

这确实是推荐的方法(查看章节Data access using JDBC以获取有关不同选项的更多详细信息)。

PS:我不知道 com/iplanet/ias/admin/common/ASException 来自哪里,但它显然是 iPlanet 本身之一。如果您确实想找到答案,请搜索 iPlanet 安装的所有 jar,尤其是其启动脚本中引用的 jar。但我认为'之后您将面临 JNDI 问题,请注意。

关于java - com iplanet ias JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com