2012-11-19 36 views
0

我剛開始使用Proxool(JDBC連接池管理器)。我下載了在以下鏈接中找到的jar:http://proxool.sourceforge.net/download.html。在那之後,我剛剛添加的罐子位置到類路徑在NetBeans 7.0.1,建項目,重新啓動我的服務器(這是Glassfish的),然後試圖將其配置如下例所示:Proxool java.lang.NoClassDefFoundError

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(); 

,如果有人有任何想法會感激你的幫助,在此先感謝。

回答

2

我猜你錯過了Apache Commons Logging JAR。

消息

 
Could not initialize class org.logicalcobwebs.proxool.ProxoolDataSource 

表示已命名的類的靜態初始化失敗。

我下載Proxool的來源,並在這個級別中唯一的靜態初始化是以下行:

private static final Log LOG = LogFactory.getLog(ProxoolDataSource.class); 

嘗試添加共享日誌記錄JAR到項目,並重新啓動服務器。

+0

添加了Apache Commons Logging Jar,它工作正常,謝謝。 –