java - 从 Tomcat 资源访问 oracle,为什么会出现 NamingException?

标签 java oracle tomcat jndi

尝试通过 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)

最佳答案

type="javax.sql.Datasource"

应该是

type="javax.sql.DataSource" 

关于java - 从 Tomcat 资源访问 oracle,为什么会出现 NamingException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792872/

相关文章:

Apache 负载均衡 tomcat websocket

tomcat - Apache Tomcat : META-INF directory ignored during creation of . war 文件

tomcat - Grails 3.3 - 如何在 yml 配置文件中以开发模式设置嵌入式 tomcat 的 URIEncoding

java - 如何在 Java 中将 YAML 列表转换为字符串数组?

java - 对于几乎没有空闲时间的人来说,玩 GWT 的最快方法是什么?

java - 与存储在不同计算机上的MS Server连接的JDBC程序

sql - Oracle SQL - 将 select count(*) 转换为零或一

java - 使用发布请求在 Google 日历中创建新事件

java - 无法使用 jbdc updateRow 方法更新 Oracle IOT 表

sql - 关于存储过程中的立即执行