Tomcat JNDI资源 - 找不到类:oracle.jdbc.xa.client.OracleXADataSource

Joh*_*ler 2 java eclipse tomcat jndi

问题

无论何时我通过Eclipse启动我的Tomcat服务器,总是会遇到Class not found错误:

SEVERE: Exception processing Global JNDI Resources
javax.naming.NamingException: Class not found: oracle.jdbc.xa.client.OracleXADataSource
    at org.apache.naming.factory.BeanFactory.getObjectInstance(BeanFactory.java:136)
Run Code Online (Sandbox Code Playgroud)

安装程序

我的server.xml文件有一个资源设置,如:

<GlobalNamingResources>
    <Resource name="sub1" auth="Container"
              type="oracle.jdbc.xa.client.OracleXADataSource"
              factory="org.apache.naming.factory.BeanFactory"
              user="****" password="*****"
              URL="**************************************" />
</GlobalNamingResources>
Run Code Online (Sandbox Code Playgroud)

context.xml有一个如下所示的条目:

<ResourceLink name="dataSource/sub1" global="sub1" type="javax.sql.DataSource" /> 
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我使用的是Oracle的JDBC驱动程序 - classes12.jar

问题

我需要在Tomcat服务器上修复什么才能找到合适的类 - oracle.jdbc.xa.client.OracleXADataSource.我的第一个猜测是需要将classes12.jar复制到服务器上的某个文件夹中.我甚至不完全确定Windows for Eclipse上的文件夹...任何帮助将不胜感激.

谢谢!

Vin*_*lds 5

假设Tomcat 6,需要将所需的库复制到$CATALINA_HOME\lib.

有关设置JDBC DataSourcesTomcat文档中:

1.安装JDBC驱动程序

使用JDBC数据源JNDI资源工厂要求您为Tomcat内部类和Web应用程序提供适当的JDBC驱动程序.通过将驱动程序的JAR文件安装到$ CATALINA_HOME/lib目录中可以很容易地实现这一点,这使得驱动程序既可用于资源工厂,也可用于应用程序.

另外,我会避免使用classes12.zip.它仅用于Java 1.2和1.3运行时环境.使用ojdbc14.jar,如果你被卡住的Java 1.4.或者使用推荐ojdbc6.jar/ ojdbc5.jar用于Java 6或Java 5环境.