我刚刚开始使用Proxool(JDBC连接池管理器)。我下载了在以下链接中找到的jar:http://proxool.sourceforge.net/download.html。之后,我只是将jar位置添加到netbeans 7.0.1的ClassPath中,构建了项目,重新启动了服务器(Glassfish),然后尝试对其进行配置,如下例所示:
https://java2s.com/Open-Source/Java/Database-JDBC-Connection-Pool/proxool/org/logicalcobwebs/proxool/ProxoolDataSourceTest.java.htm
我只是修改了示例(参数),使其修复到我的应用程序中,并且下面的以下代码崩溃了。它显示错误java.lang.NoClassDefFoundError: Could not initialize class org.logicalcobwebs.proxool.ProxoolDataSource
。
我不明白为什么,因为我只是导入了整个程序包。我不知道从哪里开始。
这是我的代码:
import org.logicalcobwebs.proxool.*;
import org.logicalcobwebs.*;
/* Error Here ----> */ ProxoolDataSource dataSource = new ProxoolDataSource();
dataSource.setAlias("flpool");
dataSource.setDriver("com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource");
dataSource.setDriverUrl("jdbc:mysql://localhost:3306/superdb");
dataSource.setUser("db");
dataSource.setPassword("password");
dataSource.setMaximumActiveTime(100);
dataSource.setMinimumConnectionCount(8);
dataSource.setMaximumConnectionCount(25);
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
env.put(Context.PROVIDER_URL, "rmi://localhost:1099");
Context context = new InitialContext(env);
context.createSubcontext("jdbc");
context.bind(jndiName,dataSource);
context.close();
DataSource ds = (DataSource) context.lookup(jndiName);
ProxoolFacade.removeConnectionPool("flpool");
context.close();
如果有人有任何想法将感谢您的帮助,在此先感谢。
最佳答案
我想您可能错过了Apache Commons Logging JAR。
讯息
Could not initialize class org.logicalcobwebs.proxool.ProxoolDataSource
indicates that static initialization of the named class failed.
I downloaded the source of Proxool, and the only static initialization in this class was the following line:
private static final Log LOG = LogFactory.getLog(ProxoolDataSource.class);
尝试将Commons Logging JAR添加到您的项目中,然后重新启动服务器。
关于java - Proxool java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13462861/