Java 类型DataSource的方法getConnection()未定义

Java 类型DataSource的方法getConnection()未定义,java,datasource,Java,Datasource,我正在使用连接池连接到oracle数据库。我已经设置了我的数据源文件,但是当我尝试获取连接时,我得到了错误 类型数据源的getConnection()方法未定义 我在网上搜索过,这似乎不是一个常见的问题。我不确定我做错了什么 代码是: <datasources> <local-tx-datasource> <jndi-name>DefaultDS</jndi-name> <connection-url>jdb

我正在使用连接池连接到oracle数据库。我已经设置了我的数据源文件,但是当我尝试获取连接时,我得到了错误

类型数据源的getConnection()方法未定义

我在网上搜索过,这似乎不是一个常见的问题。我不确定我做错了什么

代码是:

<datasources>  
<local-tx-datasource>  
    <jndi-name>DefaultDS</jndi-name>  
    <connection-url>jdbc:oracle:thin:@ED.OPTO:1521:OPY>  
    <driver-class>oracle.driver.OracleDriver</driver-class>  
    <user-name>temiuser</user-name>  
    <password>password</password>  
 </local-tx-datasource>  
}


请帮忙

名称冲突:
导入javax.sql.DataSource


顺便说一句,它是否应该是
ic.lookup(“DefaultDS”)
(目前不确定)?

名称冲突:
import javax.sql.DataSource


顺便说一句,应该不是ic.lookup(“DefaultDS”)
(目前不确定)?

问题似乎是这个库:

导入javax.activation.DataSource

试试这个:


javax.sql.DataSource ds=(javax.sql.DataSource)ic.lookup(sourceFile)

问题似乎是这个库:

导入javax.activation.DataSource

试试这个:


javax.sql.DataSource ds=(javax.sql.DataSource)ic.lookup(sourceFile)

我猜您的驱动程序与您的运行时不匹配,请检查您的oracle jar文件是否与您的jdk版本匹配


因为错误“类型DataSource的方法getConnection()未定义”意味着:找不到DataSource版本“1.foo”的方法getConnection()。您的驱动程序方法getConnection()实现了数据源版本“1.bar”

我猜您的驱动程序与您的运行时不匹配,请检查您的oracle jar文件是否与jdk版本匹配


因为错误“类型DataSource的方法getConnection()未定义”意味着:找不到DataSource版本“1.foo”的方法getConnection()。您的驱动程序方法getConnection()实现数据源版本“1.bar”

名称冲突:
import javax.sql.Datasource;)@约佩金:你可能想把它作为一个答案发布。@约佩金,也许你应该把它作为一个答案添加进去?因为答案是:)谢谢!我把它放进去,拿出import javax.activation.DataSource,它解决了这个问题,但现在它说:conn无法解决:(名称冲突:
import javax.sql.DataSource;
;)@JoopEggen:你可能想把它作为一个答案发布。@JoopEggen,也许你应该把它作为一个答案添加进来?因为答案是:)谢谢!我把它放进并取出了import javax.activation.DataSource,解决了这个问题,但现在它说:conn无法解决:(谢谢!我把它放进并取出了import javax.activation.DataSource,解决了这个问题,但现在它说:conn无法解决:(如果将XML作为配置,您是否尝试了
查找(“DefaultDS”)
?通常使用jndi名称。谢谢!我将其放入并取出import javax.activation.DataSource,解决了这个问题,但现在它说:conn无法解决:(如果XML作为配置,您是否尝试过
查找(“DefaultDS”)
?通常使用jndi名称。
import javax.activation.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.sql.*;
import javax.sql.*;


public class dataSource {

    // load the driver
    Class.forName("oracle.jdbc.OracleDriver");

    String sourceFile = "java:/TVEContent";
    InitialContext ic = new InitialContext();
    DataSource ds = (DataSource)ic.lookup(sourceFile);
    Connection conn = ds.getConnection();
    Statement stmnt = conn.createStatement("select * from tve");