前段时间在项目里配置了proxool连接池,配置代码如下:proxool.xml
<?xml version="1.0" encoding="gbk"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<!--连接池的别名-->
<alias>DBPool</alias> <!--proxool只能管理由自己产生的连接-->
<driver-url>jdbc:mysql://0.0.0.0:3306/fengshen?useUnicode=true&characterEncoding=gb2312&autoReconnect=true</driver-url> <!--JDBC驱动程序-->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="user"/>
<property name="password" value="pass"/>
</driver-properties>
<prototype-count>1</prototype-count>
<test-before-use>true</test-before-use>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<house-keeping-test-sql>select current_date from dual</house-keeping-test-sql> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空闲连接数-->
<prototype-count>5</prototype-count> <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
<maximum-connection-count>500</maximum-connection-count> <!-- 最小连接数-->
<minimum-connection-count>10</minimum-connection-count></proxool>
</something-else-entirely>
web.xml
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>/WEB-INF/classes/com/snow/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>FsPromanager</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FsPromanager</servlet-name>
<url-pattern>/FsPromanager</url-pattern>
</servlet-mapping>hibernate.cfg.xml
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="proxool.pool_alias">DBPool</property>
<property name="proxool.xml">proxool.xml</property>
<property name="proxool.existing_pool">true</property>
<property name="connection.release_mode">auto</property>
<property name="cglib.use_reflection_optimizer">true</property>
<property name="connection.autocommit">true</property>
<property name="transaction.auto_close_session">true</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>该项目在本地(windows)测试一切正常,可是一放到服务器(Linux)上就会出错
错误信息:No pools have been registered.写了一个测试JSP:错误信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 3027: }
28: finally {
29: try {
30: rs.close();
31: stmt.close();
32: if (con != null) {
33: con.close();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 实在没有办法了,请大家帮帮忙!
<?xml version="1.0" encoding="gbk"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<!--连接池的别名-->
<alias>DBPool</alias> <!--proxool只能管理由自己产生的连接-->
<driver-url>jdbc:mysql://0.0.0.0:3306/fengshen?useUnicode=true&characterEncoding=gb2312&autoReconnect=true</driver-url> <!--JDBC驱动程序-->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="user"/>
<property name="password" value="pass"/>
</driver-properties>
<prototype-count>1</prototype-count>
<test-before-use>true</test-before-use>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<house-keeping-test-sql>select current_date from dual</house-keeping-test-sql> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空闲连接数-->
<prototype-count>5</prototype-count> <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
<maximum-connection-count>500</maximum-connection-count> <!-- 最小连接数-->
<minimum-connection-count>10</minimum-connection-count></proxool>
</something-else-entirely>
web.xml
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>/WEB-INF/classes/com/snow/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>FsPromanager</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FsPromanager</servlet-name>
<url-pattern>/FsPromanager</url-pattern>
</servlet-mapping>hibernate.cfg.xml
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="proxool.pool_alias">DBPool</property>
<property name="proxool.xml">proxool.xml</property>
<property name="proxool.existing_pool">true</property>
<property name="connection.release_mode">auto</property>
<property name="cglib.use_reflection_optimizer">true</property>
<property name="connection.autocommit">true</property>
<property name="transaction.auto_close_session">true</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>该项目在本地(windows)测试一切正常,可是一放到服务器(Linux)上就会出错
错误信息:No pools have been registered.写了一个测试JSP:错误信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 3027: }
28: finally {
29: try {
30: rs.close();
31: stmt.close();
32: if (con != null) {
33: con.close();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 实在没有办法了,请大家帮帮忙!
换个Servlet-api和Jsp-api包试试。
没有贴index.jsp的代码。要看了代码才知道。
stmt.close();
改为
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
空指针异常啊看哪里调用空对象了
No suitable driver found for proxool.DBPoolproxool的驱动包我都放到项目里了 也放到tomcat目录下的lib里了 怎么还是找不到呢?MySQL的驱动服务器和本地的版本都一样的啊
好,打开tomcat服务器运行,出现下述错误
java.sql.SQLException: No suitable driver found for proxool.DBPool
折腾了一下午,终于找到了问题原因,我的proxool.xml文件是利用记事本建立的,在建立时选择了utf-8格式存储,后来改为ANSI格式存储,顺利实现。
超级郁闷!!!!
你改为:
WEB-INF/classes/com/snow/proxool.xml
试验一下