Java 在端口8080上执行JSP/Servlets progam时出错:

Java 在端口8080上执行JSP/Servlets progam时出错:,java,oracle,jsp,tomcat,servlets,Java,Oracle,Jsp,Tomcat,Servlets,我已经将我的项目移动到tomcat 6.0目录下的webapps目录中,并使用8080端口在更新的url下运行该项目。 有人见过这个错误吗 **java.lang.UnsatisfiedLinkError: Native Library D:\oracle\product\10.2.0\client_1\BIN\ocijdbc10.dll already loaded in another classloader** java.lang.ClassLoader.loadLibrary0(Unkn

我已经将我的项目移动到tomcat 6.0目录下的webapps目录中,并使用8080端口在更新的url下运行该项目。 有人见过这个错误吗

**java.lang.UnsatisfiedLinkError: Native Library D:\oracle\product\10.2.0\client_1\BIN\ocijdbc10.dll already loaded in another classloader**
java.lang.ClassLoader.loadLibrary0(Unknown Source)
java.lang.ClassLoader.loadLibrary(Unknown Source)
java.lang.Runtime.loadLibrary0(Unknown Source)
java.lang.System.loadLibrary(Unknown Source)
oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3147)
java.security.AccessController.doPrivileged(Native Method)
oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3143)
oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:221)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:132)
oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:78)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
**java.lang.UnsatisfiedLinkError:本机库D:\oracle\product\10.2.0\client\u 1\BIN\ocijdbc10.dll已加载到另一个类加载器中**
java.lang.ClassLoader.loadLibrary0(未知源)
java.lang.ClassLoader.loadLibrary(未知源)
java.lang.Runtime.loadLibrary0(未知源)
java.lang.System.loadLibrary(未知源)
oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3147)
java.security.AccessController.doPrivileged(本机方法)
oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3143)
oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:221)
PhysicalConnection.(PhysicalConnection.java:441)
oracle.jdbc.driver.T2CConnection。(T2CConnection.java:132)
oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:78)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
java.sql.DriverManager.getConnection(未知源)
java.sql.DriverManager.getConnection(未知源)
我很想知道这个堆栈跟踪的第一行是什么。 这是什么意思? 如果我的计划需要更多信息,请告诉我。 先谢谢你。
Sonny

正如错误所说-您不能从两个独立的
类加载程序加载dllli。很可能您有两个单独的Web应用程序使用Oracle连接。

请尝试将oracle libraryjar移动到Tomcat
shared/lib
文件夹,这样Tomcat公共类加载器只会加载一次库

您好,我解决了我自己的问题。我必须将oracle数据库的路径更改为jdbc瘦客户机url,而不是直接连接到oracle数据库。 最初我使用的语句是:intfdb.jdbocidrv=jdbc:oracle:oci:@GPSTRKPD.na.jnj.com 要连接导致错误的。 我将我的语句改为:jdbc:oracle:thin:@psgtwp0.na.jnj.com:1531:gpstrkpd,它现在可以正常工作了。谢谢你的所有意见。
Sonny

我同意第一个答案,您的问题来自用于Oracle DB的JDBC,您直接从Oracle安装加载它。将它复制到tomcat lib文件夹,并从该文件夹引用它。我提前道歉,但我是这方面的初学者。那么您是说从oracle目录中获取ocijdbc10.dll并将其放入tomcat目录中,重新启动tomcat服务器,它应该可以工作了吗?感谢advanceNo,dll文件由Oracle Java API加载(您可以在堆栈跟踪中看到Oracle.jdbc.driver.OracleDriver)。您需要在这个类中找到jar。然后将其放入Tomcat文件夹并重新启动服务器。确定。我拥有的唯一一个连接到oracle的jar是ojdbc14.jar文件。我已经从我的项目中的libraries文件夹中剪切了它,并将其粘贴到tomcat/lib中,重新启动服务器,并再次尝试执行URL。我仍然得到同样的错误。似乎这是唯一一个连接到oracle的jar。我有什么遗漏吗?我是否应该找到正在使用此库的其他项目并将其从中删除?提前感谢是的,请检查是否有其他web组件使用此库。webapps目录中还有4个其他项目,它们都使用ojdbc14.jar。我认为,如果其他项目没有受到影响,将jar移到tomcat/lib将不会奏效。我看得不对吗?谢谢