2013-01-19 87 views
0

這是一個真正嘗試我的耐心。我有一個簡單的Spring 3.1 + Jersey應用程序,我試圖使用ojdbc6.jar作爲我的數據源。不幸的是,無論我嘗試什麼,它都找不到「oracle.jdbc.driver.OracleDriver」類。Tomcat 7無法加載ojdbc6.jar無論我在哪裏指定

我已經打開的類加載器跟蹤,我可以看到正在加載的ojdbc6.jar:

[Loaded oracle.jdbc.driver.OracleDriver from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.OracleDriver from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded java.sql.SQLException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.Wrapper from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.Connection from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded javax.management.InstanceAlreadyExistsException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded oracle.jdbc.driver.OracleDriverExtension from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded java.sql.DriverInfo from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded oracle.jdbc.driver.OracleDriver$1 from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.ClassRef from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.ClassRef$XMLTypeClassRef from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.DiagnosabilityMXBean from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.OracleDiagnosabilityMBean from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded javax.management.StandardMBean$MBeanInfoSafeAction from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded oracle.jdbc.driver.DatabaseError from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.OracleSQLException from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded java.lang.StringIndexOutOfBoundsException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded oracle.jdbc.driver.SQLStateMapping from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded java.sql.SQLNonTransientException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLTransientException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLDataException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLFeatureNotSupportedException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLIntegrityConstraintViolationException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLInvalidAuthorizationSpecException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLNonTransientConnectionException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLSyntaxErrorException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLTimeoutException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLTransactionRollbackException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLTransientConnectionException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLClientInfoException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded java.sql.SQLRecoverableException from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar] 
[Loaded oracle.jdbc.driver.SQLStateMapping$Tokenizer from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.Message from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.Message11 from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.internal.ObjectDataFactory from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.sql.ORADataFactory from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.sql.AnyDataFactory from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.internal.ObjectData from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.sql.ORAData from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.sql.TypeDescriptorFactory from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.OracleConnection from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.internal.OracleConnection from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.internal.ClientDataSupport from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.OracleConnectionWrapper from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.OracleConnection from file:/opt/tomcat7/lib/ojdbc6.jar] 
[Loaded oracle.jdbc.driver.PhysicalConnection from file:/opt/tomcat7/lib/ojdbc6.jar] 

但是當我嘗試我的web服務調用,我得到如下:

SEVERE: Servlet.service() for servlet [oraclepoc] in context with path [/oraclepoc] threw exception 
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '"oracle.jdbc.driver.OracleDriver"/>' 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674) 
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:729) 
    at com.company.sims.oraclepoc.dao.ProcessStatusDaoImpl.getStatusByProcessID(ProcessStatusDaoImpl.java:15) 
    at com.company.sims.oraclepoc.resources.ProcessStatusRestController.getEMSStatusByProcessID_XML(ProcessStatusRestController.java:27) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '"oracle.jdbc.driver.OracleDriver"/>' 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) 
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) 
    ... 43 more 
Caused by: java.lang.ClassNotFoundException: "oracle.jdbc.driver.OracleDriver"/> 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) 
    ... 47 more 
Jan 18, 2013 11:24:30 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [oraclepoc] in context with path [/oraclepoc] threw exception 
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '"oracle.jdbc.driver.OracleDriver"/>' 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666) 
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674) 
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:729) 
    at com.company.sims.oraclepoc.dao.ProcessStatusDaoImpl.getStatusByProcessID(ProcessStatusDaoImpl.java:15) 
    at com.company.sims.oraclepoc.resources.ProcessStatusRestController.getEMSStatusByProcessID_XML(ProcessStatusRestController.java:27) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '"oracle.jdbc.driver.OracleDriver"/>' 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) 
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) 
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) 
    ... 43 more 
Caused by: java.lang.ClassNotFoundException: "oracle.jdbc.driver.OracleDriver"/> 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) 
    ... 47 more 

我的應用程序上下文XML文件如下:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
    <context:component-scan base-package="com.company.sims.oraclepoc"/> 
    <context:annotation-config/> 
    <bean id="propertyConfigurer" 
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="location"> 
      <value>jdbc.properties</value> 
     </property> 
    </bean> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
      destroy-method="close"> 
     <property name="driverClassName"> 
      <value>${jdbc.driver}</value> 
     </property> 
     <property name="url"> 
      <value>${jdbc.url}</value> 
     </property> 
     <property name="username"> 
      <value>${jdbc.user}</value> 
     </property> 
     <property name="password"> 
      <value>${jdbc.password}</value> 
     </property> 
    </bean> 
    <bean id="processStatusDao" class="com.company.sims.oraclepoc.dao.ProcessStatusDaoImpl"> 
     <property name="dataSource" ref="dataSource" /> 
    </bean> 
</beans> 

我jdbc.properties文件:

jdbc.driver="oracle.jdbc.driver.OracleDriver"/> 
jdbc.url="jdbc:oracle:thin:@10.10.10.10:1522:db"/> 
jdbc.user="USER"/> 
jdbc.password="password"/> 

我試過把它放在WEB-INF/lib目錄下和Tomcat的LIB目錄中。兩次嘗試都失敗了。

+0

你的ojdbc.jar在哪裏?在你的Tomcat中是否有多個(tomcat \ lib中的一個和WEB-INF \ lib中的另一個)? –

+0

在任何時候,有沒有使用2個相同的罐子。我只是寫了那個來顯示我在哪裏放置了JAR文件進行測試。 – Carlos

回答

1

原來,經過好一個晚上的休息和一段時間之後,我帶領我到了this link here in SO.原來我的jdbc.properties文件是針對我的Oracle實例構造的很糟糕,但是對於我的Sybase實例來說卻是非常糟糕的。感謝大家的幫助。因爲荒唐而投我的票。

1

你確定.jar是否在正確的位置?例如,在這種情況下,它需要將位於我nTomcat 「common/lib目錄」,而不是 「應用程序/ lib目錄」:

+0

我很驚訝你沒有看到我的信息。這是Tomcat 7,如果你明白這一點,你會知道lib目錄已經崩潰了。請參閱'http:// tomcat.apache.org/migration.html'。如果我正在運行Spring 1.2.6,那麼這個話題是從2005年開始的,這很方便。 – Carlos

3

oracle.jdbc.driver.OracleDriver類已被廢棄多年,是removed from ojdbc6.jar in Oracle JDBC Drivers release 11.1.0.7.0

您應該改用oracle.jdbc.OracleDriver

+0

嘗試和失敗:'產生的原因:拋出java.lang.ClassNotFoundException: 「oracle.jdbc.OracleDriver」/> \t在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) \t在有機apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) \t在org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) \t ... 47 more' – Carlos

+0

這裏是我的」我做了:我拿了11.2.0.2 JAR並通過7zip檢查。檢查出好。看着文件結構,它都是正確的。課程是他們應該在的地方。我在這個Web應用程序的外部編寫了一個小型Java應用程序,它編譯得很好。我使用完全不同的JAR(Sybase)來隔離我的應用程序和JAR工作。在這一點上,我繼續前進,然後使用我的ORACLE JAR文件,然後繼續失敗。然後,我下載了11.2.0.3並執行了相同的步驟,但也失敗了。 – Carlos

+0

哦,然後,我將應用程序部署到:Glassfish 3 +,Oracle WebLogic 11g和WebSphere 8.0.0.5,並且它們都失敗並出現SAME錯誤。這有幫助嗎? – Carlos

5

我相信它是一個類加載問題。 我能想到的事情是:

  • 兩個ojdbc.jars在訪問你的classpath,一個在Tomcat中/ lib下,另一個在WEB-INF/lib目錄
  • 兩人在訪問ojdbc.jars在類路徑,一個在JRE ext文件夾中,另一個在WEB-INF/lib中

或類似的東西。

只要確保類路徑中只有一個JDBC驅動程序。您可以刪除WEB-INF/lib中的一個,以查看您的應用程序是否可用。

+1

在任何時候,有兩個相同的罐子使用。我只是寫了那個來顯示我在哪裏放置了JAR文件進行測試。它在任一個或兩個都失敗了 – Carlos

0

我正在使用Jetbrains IntelliJ IDE。我選擇了設置 - 構建,執行,部署 - 構建工具 - Maven - Runner並在JRE ComboBox中選擇了高於1.6的Java版本。錯誤消失了。