Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
log4j类型GenericObjectPool不接受参数_Log4j_Log4j2_Apache Commons Logging - Fatal编程技术网

log4j类型GenericObjectPool不接受参数

log4j类型GenericObjectPool不接受参数,log4j,log4j2,apache-commons-logging,Log4j,Log4j2,Apache Commons Logging,我试图通过参考下面的链接来配置log4j,以便使用jdbcapender登录到数据库 但是,我得到错误“类型GenericObjectPool不接受参数”。有人能帮我纠正这个错误吗 log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="error"> <Appenders> <JDBC name="databaseAppender" tableNa

我试图通过参考下面的链接来配置log4j,以便使用jdbcapender登录到数据库

但是,我得到错误“类型GenericObjectPool不接受参数”。有人能帮我纠正这个错误吗

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error">


 <Appenders>
    <JDBC name="databaseAppender" tableName="LOGGING.APPLICATION_LOG">
      <ConnectionFactory class="net.example.db.ConnectionFactory" method="getDatabaseConnection" />
      <Column name="EVENT_ID" literal="LOGGING.APPLICATION_LOG_SEQUENCE.NEXTVAL" />
      <Column name="EVENT_DATE" isEventTimestamp="true" />
      <Column name="LEVEL" pattern="%level" />
      <Column name="LOGGER" pattern="%logger" />
      <Column name="MESSAGE" pattern="%message" />
      <Column name="THROWABLE" pattern="%ex{full}" />
    </JDBC>
  </Appenders>
  <Loggers>
    <Root level="warn">
      <AppenderRef ref="databaseAppender"/>
    </Root>
  </Loggers>
</Configuration>

ConnectionFactory.java

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnection;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDataSource;
import org.apache.commons.pool.impl.GenericObjectPool;

public class ConnectionFactory {
    private static interface Singleton {
        final ConnectionFactory INSTANCE = new ConnectionFactory();
    }

    private final DataSource dataSource;

    private ConnectionFactory() {
        Properties properties = new Properties();
        properties.setProperty("user", "logging");
        properties.setProperty("password", "abc123"); // or get properties from some configuration file

        GenericObjectPool<PoolableConnection> pool = new GenericObjectPool<PoolableConnection>(); //Error: type GenericObjectPool does not take parameters
        DriverManagerConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
                "jdbc:mysql://example.org:3306/exampleDb", properties
        );
        new PoolableConnectionFactory(
                connectionFactory, pool, null, "SELECT 1", 3, false, false, Connection.TRANSACTION_READ_COMMITTED
        );

        this.dataSource = new PoolingDataSource(pool);
    }

    public static Connection getDatabaseConnection() throws SQLException {
        return Singleton.INSTANCE.dataSource.getConnection();
    }
}
导入java.sql.Connection;
导入java.sql.SQLException;
导入java.util.Properties;
导入javax.sql.DataSource;
导入org.apache.commons.dbcp.driverManager连接工厂;
导入org.apache.commons.dbcp.PoolableConnection;
导入org.apache.commons.dbcp.PoolableConnectionFactory;
导入org.apache.commons.dbcp.pooligdatasource;
导入org.apache.commons.pool.impl.GenericObject池;
公共类连接工厂{
私有静态接口单例{
最终ConnectionFactory实例=新的ConnectionFactory();
}
私有最终数据源数据源;
私有连接工厂(){
属性=新属性();
setProperty(“用户”、“日志记录”);
properties.setProperty(“password”,“abc123”);//或从某个配置文件获取属性
GenericObjectPool池=新建GenericObjectPool();//错误:类型GenericObjectPool不接受参数
DriverManager连接工厂connectionFactory=新建DriverManager连接工厂(
“jdbc:mysql://example.org:3306/exampleDb“、属性
);
新PoolableConnectionFactory(
connectionFactory,池,null,“选择1”,3,false,false,Connection.TRANSACTION\u READ\u COMMITTED
);
this.dataSource=新池数据源(池);
}
公共静态连接getDatabaseConnection()引发SQLException{
返回Singleton.INSTANCE.dataSource.getConnection();
}
}

问题已由我自己解决

我添加了maven依赖项,这对我来说很好

    <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.6</version>
    </dependency>

共用池
共用池
1.6

同样的问题,有什么解决方案吗?