我的 Tomcat 8.0 安装无法使用 OracleDataSourceFactory 创建数据源。来自 Tomcat 的日志不是很有用:
NE: 52102734 Public Enter: ResourceRef[className=javax.sql.DataSource,factoryClassLocation=null,factoryClassName=org.apache.naming.factory.ResourceFactory,{type=scope,content=Shareable},{type=auth,content=Container},{type=singleton,content=true},{type=factory,content=oracle.jdbc.pool.OracleDataSourceFactory},{type=password,content=mypass},{type=maxIdle,content=10},{type=driverClassName,content=oracle.jdbc.OracleDriver},{type=maxWait,content=-1},{type=url,content=myUrl},{type=maxActive,content=30},{type=username,content=myUser}], DAFDataSource, org.apache.naming.NamingContext@3541cb24, {} Jun 24, 2016 10:24:27 AM oracle.jdbc.pool.OracleDataSourceFactory getObjectInstance FINE: 52102734 Return: null Jun 24, 2016 10:24:27 AM oracle.jdbc.pool.OracleDataSourceFactory getObjectInstance
当我尝试在我的代码中使用相同的设置创建 OracleDataSource 时,我能够正确地检索连接。我的出厂配置有什么问题?
最佳答案
发生这种情况的原因有多种:
-
如果 server.xml 中定义的资源类型是
OracleDataSourceFactory
返回 null。我不得不将其更改为oracle.jdbc.pool.OracleConnectionPoolDataSource
在使用 JDBC Oracle 瘦驱动程序指定 url 时,资源的用户名和密码属性被忽略
javax.sql.DataSource
,关于OracleDataSourceFactory 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010957/