0

我正在尝试在代码模块中部署几个jar 文件,用于FileNet P8 4.0中的事件操作(FileNet 服务器在WebSphere 6.1上运行)。其中一个 jar 是我的自定义代码,另一个 jar 是名为ojdbc14.jar的Oracle瘦驱动程序(我也尝试使用ojdbc15.jar),自定义代码使用 oracle jar 连接到数据源并获取使用JNDI名称的连接。

执行事件操作时(在调用订阅后)我的自定义模块中的代码调用 OK,当我的代码需要从 Oracle jar加载类时出现问题,我得到这个原因:

错误 - 2009 年 9 月 21 日星期一 16:42:17 UTC - com.ibm.websphere.naming.CannotInstantiateObjectException:JNDI NamingManager 处理 javax.naming.Reference 对象时发生异常。[根异常是 java.lang.reflect.InvocationTargetException] 在 com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:1000) 在 com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers. java:705) 在 com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:2093)

...

引起:java.lang.NoClassDefFoundError: oracle.jdbc.driver.OracleLog at com.ibm.ws.rsadapter.dbutils.impl.OracleUtilityImpl.setLogVolume(OracleUtilityImpl.java:85) at com.ibm.ws.rsadapter.spi。 InternalOracleDataStoreHelper.setProperties(InternalOracleDataStoreHelper.java:142) 在 com.ibm.ws.rsadapter.spi.WSRdbDataSource.(WSRdbDataSource.java:846) 在 com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.setDataSourceProperties(WSManagedConnectionFactoryImpl.java:1947 ) ... 43 更多

...

引起:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleLog at java.net.URLClassLoader.findClass(URLClassLoader.java:496) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:132)在 java.lang.ClassLoader.loadClass(ClassLoader.java:631) 在 com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:87) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:597) 。 .. 还有 48 个

由于我正在使用代码模块部署 oracle jar,FileNet 不应该能够找到该类吗?你认为我需要配置其他东西吗?

提前致谢。

4

2 回答 2

1

您的应用程序是否可以使用 WebSphere 自己的 JDBC 连接池?当您为特定数据库设置池时,您会在其中安装所有供应商特定的驱动程序。

通常,当您尝试将基础架构代码放置在自己的应用程序中时,会出现各种类型的类路径和类加载器配置。我不确定您的情况是否属于这种情况,但我确实发现在 WebSphere 中停留在已知路径上往往会产生最平滑的结果。

于 2009-09-22T12:52:35.033 回答
0

我发现了问题……不知何故,ojdbc14.jar 文件损坏了,所以即使类路径正确并且无论我尝试解决什么问题,问题总是存在。

感谢您的评论!

于 2009-09-29T17:51:22.700 回答