java - db.properties - 空指针异常

标签 java web-applications jdbc datasource tomcat6

我尝试了相关问题的许多可用答案,但没有一个成功。

这是我的问题

我有一个动态 Web 应用程序,它使用 Oracle 数据库来检索数据。为了让它变得更好,我使用 db.properties 配置文件并创建数据源,

这是 dataFactory.class 的代码:

public DataSource getDatasource() {
    Properties props = new Properties();
    FileInputStream fis = null;
    InputStream in = null;
    OracleDataSource oracleDS = null;
    try {
        fis = new FileInputStream("db.properties");
        props.load(fis);
        oracleDS = new OracleDataSource();
        oracleDS.setURL(props.getProperty("url"));
        oracleDS.setUser(props.getProperty("user"));
        oracleDS.setPassword(props.getProperty("password"));
    } catch (IOException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return oracleDS;
}

为了建立连接,我在 EmployeeDao.class 中使用它,

 DataSource ds;
 EmpDatasourceFactory empDs = new EmpDatasourceFactory();
 Connection conn;

public boolean insertRecord(Employee emp) {

    boolean status = false;
    ds = empDs.getDatasource();


    try {
        conn = ds.getConnection(); //Getting the null point exception
    }
}

注意:请注意,我有必要的所有其他代码。

问题是,当我创建一个 java 文件并创建一些方法并使用它来建立连接时,它工作正常,我的意思是当它作为 java 应用程序运行时。

但是当使用employeeDao.java并使用apache tomcat服务器运行它时,它给了我一个错误。请帮忙。!!!

最佳答案

在@joop Eggen的帮助下,我能够修复这个错误,最后我的方法看起来像

public static  DataSource geDataSource() throws ResourceResolverException{
    ResourceBundle props = ResourceBundle.getBundle("db");
    OracleDataSource oracleDS = null;
    try {
        oracleDS = new OracleDataSource();
        oracleDS.setURL(props.getString("url"));
        oracleDS.setUser(props.getString("user"));
        oracleDS.setPassword(props.getString("password"));
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return oracleDS;
}

我必须处理所有的“ResourceResolverException”。之后效果很好。

快乐编码..!!!并使其成为 Java :)

关于java - db.properties - 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567687/

相关文章:

java - 如何修复 ArrayIndexOutOfBoundsException

java - 将 java 对象数组转换为 JavaScript 数组

web-applications - 您将如何向潜在投资者和利益相关者证明/捍卫免费增值支付模式?

java - Oracle 10g Clob 列中的特殊字符(UTF8 字符)返回为 ?或在 Java 中为空白

java - JDBC 错误 : Before start of result set

java - 如何避免 "One Big Application User"模型?

java - 使用正则表达式进行拆分,无法正确返回数字

java - 减少频繁重新部署(上传)到远程服务器的 war 规模

iphone - 如何在 IOS 8 Iphone 4S 上使用移动 Safari Web 应用程序获得全屏模式

node.js - 构建(准备)用于生产(部署)的 Node.js 应用程序