log4j类型GenericObjectPool不接受参数
我试图通过参考下面的链接来配置log4j,以便使用jdbcapender登录到数据库 但是,我得到错误“类型GenericObjectPool不接受参数”。有人能帮我纠正这个错误吗 log4j2.xmllog4j类型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
<?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
同样的问题,有什么解决方案吗?