Java 实例化Oracle驱动程序会导致InvocationTargetException
我有一个使用oracle数据库的简单web服务。当我在内部测试服务时,它工作正常,但是,通过我的客户机调用web服务(在同一台机器上,但在不同的战争中)会抛出invocationtargetexception。我终于发现了实例化OracleDriver的问题。它根本不会抛出任何异常,因此我无法找出错误是什么 谷歌只提供了一个使用oracle.jdbc.driver.OracleDriver而不是oracle.jdbc.OracleDriver的解决方案,但这似乎并没有解决任何问题。我使用的jar是ojdbc14.jar,据我所知,它包含在web服务的类路径中。。。因为当我用一个简单的main方法测试服务时,它就工作了 编辑: InvocationTargetException由Axis服务器的AxisFault生成。invocationtargetexception是一个包装类,我尝试使用.getCause()提取异常时总是返回nullJava 实例化Oracle驱动程序会导致InvocationTargetException,java,oracle,jdbc,instantiation,Java,Oracle,Jdbc,Instantiation,我有一个使用oracle数据库的简单web服务。当我在内部测试服务时,它工作正常,但是,通过我的客户机调用web服务(在同一台机器上,但在不同的战争中)会抛出invocationtargetexception。我终于发现了实例化OracleDriver的问题。它根本不会抛出任何异常,因此我无法找出错误是什么 谷歌只提供了一个使用oracle.jdbc.driver.OracleDriver而不是oracle.jdbc.OracleDriver的解决方案,但这似乎并没有解决任何问题。我使用的jar
我使用jboss部署该服务,并在库中包含源代码的驱动程序JAR文件,但不包括服务器的驱动程序JAR文件。将驱动程序包含在/jboss/server/default/lib中解决了这个问题。没有更多信息,很难提供具体的建议;但是,我有过Oracle驱动程序的经验,该驱动程序试图通过本机OCI库进行连接,但找不到系统上安装的库,并抛出InvocationTargetException。这一切都来自于非常模糊的记忆,因此您的里程数几乎肯定会有所不同 已经有一段时间了,但是如果内存对我有用的话,我遇到了一个连接URL配置不正确的情况,OracleDriver(或它的一个包装器)迭代了一组可能的连接方法,试图找到一个有效的方法。在URL配置正确的情况下,它从未进行过OCI尝试(精简连接方法尝试排在第一位),但如果连接URL配置错误,精简尝试将失败,从而导致OCI尝试,而OCI尝试也将失败,因为主机上未安装OCI客户机(导致调用TargetException。) 因此,有些事情需要检查:
2个WAR?我想您的ojdbc.jar位于WEB服务WAR的WEB-INF/lib中 也许你的战争就在耳边,所以你应该在MANIFEST.MF中引用驱动程序
更多信息:你能发布完整的异常吗?特别是,引起异常的异常是什么。问题是,它不会引发异常-但InvocationTargetException是一个明显被实例化的异常。关于异常的更多详细信息肯定会有用-请参阅下面我的答案,以了解这方面的总体猜测可能没有足够的信息来提供实际帮助。是的,我的意思是两个不同的EAR。我正在编写web服务以及客户端。我必须查看清单;我已经查看了它,但从未真正知道它做了什么。