1、首先下载proxool 地址:http://proxool.sourceforge.net2、解压缩proxool-0.9.0RC3.zip,拷贝lib下的所有jar库文件到工程下的WEB-INF/lib下,同时也把Mysql的jdbc驱动到web-info/lib3、在WEB-INF下建立文件:proxool.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<alias>Develop</alias> <!--这里是连接池的别名-->
<driver-url>jdbc:mysql://localhost:3306/databaseName</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value=""/>
</driver-properties>
<maximum-connection-count>500</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool> 4、在WEB-INF/web.xml中<web-app>节点里加入如下内容:
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>用下面的jsp实例测试,连接是正常的
<%@page import="java.sql.*"%>
<%@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>ProxoolTest</title>
</head>
<body bgcolor="#ffffff">
<h1>Proxool连接池测试</h1>
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("proxool.Develop");
stmt = con.createStatement();
String query = "select * from hao";
out.println("query:" + query+ "--OK<br/>");
rs = stmt.executeQuery(query);
out.println("rs.next():" + rs.next()+ "--OK<br/>");
while (rs.next()) {
out.println(rs.getString(2) + "--OK<br/>");
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
finally {
try {
rs.close();
stmt.close();
if (con != null) {
con.close();
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
}
%>
</body>
</html>可是如果用下面的java应用测试,就会报错package com;import java.sql.*;public class DBtest {
static {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
}
catch(ClassNotFoundException e) {
System.out.println("找不到驱动");
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("proxool.Develop");
if(!conn.isClosed())
System.out.println("数据库连接成功!");
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}在eclipse下运行上面的.java程序就会报错:找不到驱动
java.lang.ClassNotFoundException: org.logicalcobwebs.proxool.ProxoolDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.DBtest.<clinit>(DBtest.java:8)
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.DBtest.main(DBtest.java:18)我感觉是没找到proxool-0.9.0RC3.jar包,怎么才能让eclips找到这个jar包你,我在工程属性里导入这个包也不好用,这是什么原因啊?
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<alias>Develop</alias> <!--这里是连接池的别名-->
<driver-url>jdbc:mysql://localhost:3306/databaseName</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root"/>
<property name="password" value=""/>
</driver-properties>
<maximum-connection-count>500</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool> 4、在WEB-INF/web.xml中<web-app>节点里加入如下内容:
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>用下面的jsp实例测试,连接是正常的
<%@page import="java.sql.*"%>
<%@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>ProxoolTest</title>
</head>
<body bgcolor="#ffffff">
<h1>Proxool连接池测试</h1>
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("proxool.Develop");
stmt = con.createStatement();
String query = "select * from hao";
out.println("query:" + query+ "--OK<br/>");
rs = stmt.executeQuery(query);
out.println("rs.next():" + rs.next()+ "--OK<br/>");
while (rs.next()) {
out.println(rs.getString(2) + "--OK<br/>");
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
finally {
try {
rs.close();
stmt.close();
if (con != null) {
con.close();
}
}
catch (SQLException sqle) {
out.println("sqle=" + sqle+ "--OK<br/>");
}
}
%>
</body>
</html>可是如果用下面的java应用测试,就会报错package com;import java.sql.*;public class DBtest {
static {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
}
catch(ClassNotFoundException e) {
System.out.println("找不到驱动");
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("proxool.Develop");
if(!conn.isClosed())
System.out.println("数据库连接成功!");
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}在eclipse下运行上面的.java程序就会报错:找不到驱动
java.lang.ClassNotFoundException: org.logicalcobwebs.proxool.ProxoolDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.DBtest.<clinit>(DBtest.java:8)
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.DBtest.main(DBtest.java:18)我感觉是没找到proxool-0.9.0RC3.jar包,怎么才能让eclips找到这个jar包你,我在工程属性里导入这个包也不好用,这是什么原因啊?
2. the eclispe runtime is different from your web runtime. (the jars in WEB-INF/lib is not default considered as the classpath for the eclipse)
3. you can test your test java class in your web environment. (e.g. create a jsp which invokes the bean you listed, and see whether it's ok)
right click the name of the project (in the package view)
'Properties' -> 'Libraries'-> 'Add Jars' (select the jars inside the WEB-INF/lib)
2. Maybe you can also build a test .jsp file to test you java bean/class under the deployment einviornment.
这种方法是可以实现的。我按1的方法把jar导入之后,发现在没有org.logicalcobwebs.proxool.ProxoolDriver这个包,有用过proxool的朋友吗?导入jar后,运行下面的程序package com;import java.sql.*;public class DBtest {
static {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
}
catch(ClassNotFoundException e) {
System.out.println("找不到驱动");
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("proxool.Develop");
if(!conn.isClosed())
System.out.println("数据库连接成功!");
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
}
}
}报这样的错误:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.logicalcobwebs.proxool.ProxoolDriver.<clinit>(ProxoolDriver.java:28)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.DBtest.<clinit>(DBtest.java:8)
Exception in thread "main"
是这段程序有错吗?
INFO [main] (ProxoolFacade.java:80) - Proxool 0.9.0RC2 (23-Mar-2006 23:39)
ERROR [main] (ProxoolDriver.java:108) - Problem
org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'Develop'
at org.logicalcobwebs.proxool.ConnectionPoolDefinition.doChange(ConnectionPoolDefinition.java:250)
at org.logicalcobwebs.proxool.ConnectionPoolDefinition.<init>(ConnectionPoolDefinition.java:147)
at org.logicalcobwebs.proxool.ProxoolFacade.registerConnectionPool(ProxoolFacade.java:90)
at org.logicalcobwebs.proxool.ProxoolDriver.connect(ProxoolDriver.java:77)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.DBtest.main(DBtest.java:20)
java.sql.SQLException: org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'Develop'
at org.logicalcobwebs.proxool.ProxoolDriver.connect(ProxoolDriver.java:109)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.DBtest.main(DBtest.java:20)
,我哭了
设置环境变量和在eclips导入jar包的作用一样吗?
你可以去tomcat的WEB-INF/lib下面看看有没有你需要的包 有的话就是已经加载了
要测只能在servert 或者 action 里面.....