gpt4 book ai didi

java - 如何从 WEB-INF 读取 db.properties 文件

转载 作者:行者123 更新时间:2023-12-01 09:13:02 25 4
gpt4 key购买 nike

我正在使用netbeans。我想从 WEB-INF 文件夹中读取 db.properties 文件。但它返回 null;

InputStream input = getClass().getClassLoader().getResourceAsStream("db.properties");   // returning null

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("/db.properties"); // returning null.

但是当我将 db.properties 文件放入 Web_INF/classes 时,上面的代码工作正常。

以下代码在两种情况下都会抛出“找不到文件”的错误。 (在 Web-INF/db.properties 和 Web-INF/classes/db.properties 中)。

FileInputStream fileInput = new FileInputStream(new File("db.properties")); //throws exception

任何线索。

package com.towertech.db;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.tomcat.jdbc.pool.*;

public class DataSource
{
PoolProperties poolProperties;
org.apache.tomcat.jdbc.pool.DataSource datasource;
ClassLoader classLoader;
InputStream input;
FileInputStream fileInput;
Properties properties;

public org.apache.tomcat.jdbc.pool.DataSource getDatasource() {
return datasource;
}

public void setDatasource(org.apache.tomcat.jdbc.pool.DataSource datasource) {
this.datasource = datasource;
}

public DataSource() throws FileNotFoundException, IOException
{
input = getClass().getClassLoader().getResourceAsStream("/WEB-INF/db.properties");
input = Thread.currentThread().getContextClassLoader().getResourceAsStream("/WEB-INF/db.properties");
fileInput = new FileInputStream(new File("/WEB-INF/db.properties"));
if(input == null)
properties.load(fileInput);
else
properties.load(input);
poolProperties = new PoolProperties();
poolProperties.setDbProperties(properties);
datasource.setPoolProperties(poolProperties);
}

public static void main(String[] args) throws IOException
{
DataSource ds = new DataSource();
System.out.println(ds.toString());

}

public Connection getConnection() throws SQLException
{
return datasource.getConnection();
}

public void returnConnection(Connection con) throws SQLException
{
con.close();
}
}

最佳答案

您可以使用 servletcontext 对象读取 Spring Controller 内 WEB-INF 下的属性文件,如下所示:

@Controller
public class MyController {

@RequestMapping(value="/myMapping")
public R myMethod(HttpServletRequest request, ...) {

//Get the servletcontext from request
InputStream input = request.getSession().getServletContext().
getResourceAsStream("/WEB-INF/db.properties");

//read properties

}
}

关于java - 如何从 WEB-INF 读取 db.properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com