我有一个使用 oracle 数据库的简单 Web 服务。但是,当我在内部测试该服务时,它可以正常工作,但是,通过我的客户端(在同一台机器上但在不同的 WAR 中)调用 Web 服务会引发 invocationtargetexception。我终于发现这是实例化 OracleDriver 的问题。它根本不会抛出任何异常,所以我无法找出错误是什么。
谷歌搜索只提供了使用 oracle.jdbc.driver.OracleDriver 而不是 oracle.jdbc.OracleDriver 的解决方案,但这似乎没有解决任何问题。我正在使用的 jar 是 ojdbc14.jar,据我所知,它正确地包含在 Web 服务的类路径中……因为当我使用简单的 main 方法测试服务时它可以工作。
编辑: InvocationTargetException 由来自 Axis 服务器的 AxisFault 生成。invocationtargetexception 是一个包装类,我尝试使用 .getCause() 提取异常的尝试总是返回 null。
我正在使用 jboss 部署服务,并将驱动程序 JAR 文件包含在库中用于源但不用于服务器。在 /jboss/server/default/lib 中包含驱动程序解决了它。