【问题标题】:Accessing oracle from Tomcat resource, why am I getting a NamingException?从 Tomcat 资源访问 oracle,为什么会出现 NamingException?
【发布时间】:2016-01-14 15:08:33
【问题描述】:

尝试通过 tomcat Context.xml 公开 Oracle 连接时,我得到了 NamingException。我已经遵循了几个教程,但我仍然遇到异常。救命!

Java:

String environmentLookup = "java:comp/env/jdbc/ENTERPRISE_DATABASE";
OracleDataSource ods = InitialContext.doLookup(environmentLookup);
Connection connection = ods.getConnection();

应用的web.xml:

<resource-ref>
  <description>Oracle Datasource example</description>
  <res-ref-name>jdbc/ENTERPRISE_DATABASE</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>

Tomcat 的 context.xml:

<Resource name="jdbc/ENTERPRISE_DATABASE" auth="Container"
    type="javax.sql.Datasource" driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@enterprise.db.company.com:1524:schema1234"
    username="ENTERPRISE_USER" password="ENTERPRISE_PASSWORD" maxActive="20"
    maxIdle="10" maxWait="-1" />

例外:

javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:144)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)

【问题讨论】:

  • oracle.jdbc.OracleDriver 在 Tomcat 的类路径上吗?
  • 我相信;驱动程序位于 TC 的 /lib/ 目录中。如何确定?
  • 堆栈跟踪是否完整?看起来不是这样,我希望有一些“由”部分。

标签: java oracle tomcat jndi


【解决方案1】:
type="javax.sql.Datasource"

应该是

type="javax.sql.DataSource" 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    相关资源
    最近更新 更多