SSH2+proxool 出现No suitable driver found for proxool.mysqlProxool

首先我们要明确使用的是SSH2框架,然而Struts2是基于filter实现的那么在启动proxool的时候就不能够在用servlet来启动了!

于是我们就想到在初始化web容器的时候怎么让他一开始就加载呢?

我们查看tomcat的启动信息:

Starting Servlet Engine: Apache Tomcat/6.0.13
2012-6-10 15:31:41 org.apache.catalina.core.ApplicationContext log
信息: Initializing spring root WebApplicationContext
2012-6-10 15:31:41 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization started

最先启动的是spring容器,那么这样我们就可以将proxool的配置写在spring的配置文件中让它最先加载

如下:

  1. <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
  2. <property name="alias" value="mysqlProxool"/>
  3. <property name="driver" value="com.mysql.jdbc.Driver"/>
  4. <property name="driverUrl" value="jdbc:mysql://localhost:3306/my_blog_01?characterEncoding=UTF-8"/>
  5. <property name="user" value="root"/>
  6. <property name="password" value="123456"/>
  7. <property name="minimumConnectionCount" value="2"/>
  8. <property name="maximumConnectionCount" value="10"/>
  9. <property name="prototypeCount" value="5"/>
  10. <!-- <property name="houseKeepingSleepTime" value="100000"/> -->
  11. </bean>

这样只需要在sessionFactory加上dataSource的引用即可如下:

  1. <bean id="sessionFactory"
  2. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  3. <property name="configLocation" value="classpath:Hibernate.cfg.xml"/>
  4. <span style="color:#ff0000;"><property name="dataSource">
  5. <ref local="dataSource"/>
  6. </property>
  7. </span>           </bean>

这样就不在需要配置proxool的servlet启动了,例如:

  1. <servlet>
  2. <servlet-name>ServletConfigurator</servlet-name>
  3. <servlet-class>
  4. org.logicalcobwebs.proxool.configuration.ServletConfigurator
  5. </servlet-class>
  6. <init-param>
  7. <param-name>xmlFile</param-name>
  8. <param-value>WEB-INF/classes/proxool.xml</param-value>
  9. </init-param>
  10. <load-on-startup>1</load-on-startup>
  11. </servlet>
  1. 以上的配置就不在需要在web.xml中进行配置。
  1. 而在hibernate.cfg.xml中也不在需要proxool的配置只是配置一些hibernate的信息例如:
    1. <pre class="html" name="code">  <property name="show_sql">true</property>
    2. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property></pre><pre class="html" name="code">和一些实体类的映射文件:</pre><pre class="html" name="code"> <mapping resource="com/wuda/hibernate/table/users.hbm.xml"/></pre><pre class="html" name="code">以上就将SSH2+PROXOOL的环境搭建好了。</pre><pre class="html" name="code"> </pre><pre class="html" name="code">但是在搭建好之后如果我们配置<property name="houseKeepingSleepTime" value="100000"/></pre><pre class="html" name="code"> </pre><pre class="html" name="code"> </pre><pre class="html" name="code">又会提示如下错误:</pre><pre class="html" name="code">Invalid property 'houseKeepingSleepTime' of bean class [org.logicalcobwebs.proxool.ProxoolDataSource]: Bean property 'houseKeepingSleepTime' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?</pre><pre class="html" name="code">大概意思是说'houseKeepingSleepTime'属性是不能够写的或者没有合适的setter方法。在他的参数setter和getter的返回结果类型不一致所导致的。</pre><pre class="html" name="code">这个我想也正是他的bug吧。</pre><pre class="html" name="code">那么具体解决如下:</pre><pre class="html" name="code">在proxool-0.9.1.jar(我用的proxool架包)中找到org.logicalcobwebs.proxool.ProxoolDataSource将其源码修改如下:</pre><pre class="html" name="code"> </pre><pre class="html" name="code">源码是:</pre><pre class="java" name="code">1./**
    3. 2.    * @see ConnectionPoolDefinitionIF#getHouseKeepingSleepTime
    4. 3.    */
    5. 4.   public long getHouseKeepingSleepTime() {
    6. 5.       return houseKeepingSleepTime;
    7. 6.   }
    8. 7.
    9. 8.   /**
    10. 9.    * @see ConnectionPoolDefinitionIF#getHouseKeepingSleepTime
    11. 10.    */
    12. 11.   public void setHouseKeepingSleepTime(int houseKeepingSleepTime) {
    13. 12.       this.houseKeepingSleepTime = houseKeepingSleepTime;
    14. 13.   }
    15. </pre>
    16. <pre></pre>
    17. <pre class="html" name="code"> </pre><pre class="html" name="code">修改为:</pre><pre class="html" name="code"><ol class="dp-j"><li><span><span class="comment">/** </span> </span></li><li><span><span class="comment">    * @see ConnectionPoolDefinitionIF#getHouseKeepingSleepTime </span> </span></li><li><span><span class="comment">    */</span><span>  </span></span></li><li><span>   </span><span class="keyword">public</span><span> </span><span class="keyword">long</span><span> getHouseKeepingSleepTime() {   </span></li><li><span>       </span><span class="keyword">return</span><span> houseKeepingSleepTime;   </span></li><li><span>   }   </span></li><li><span>  </span></li><li><span>   </span><span class="comment">/** </span> </li><li><span><span class="comment">    * @see ConnectionPoolDefinitionIF#getHouseKeepingSleepTime </span> </span></li><li><span><span class="comment">    *此处将int类型改为long类型 </span> </span></li><li><span><span class="comment">    */</span><span>  </span></span></li><li><span>   </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> setHouseKeepingSleepTime(</span><span class="keyword">long</span><span> houseKeepingSleepTime) {   </span></li><li><span>       </span><span class="keyword">this</span><span>.houseKeepingSleepTime = houseKeepingSleepTime;   </span></li><li><span>   }  </span></li></ol></pre><pre class="html" name="code">这样所有问题都解决!
    18. </pre><pre class="html" name="code">以上所有步骤都是通过本人在网上查资料,自己手动配置而成。验证通过!</pre><pre class="html" name="code"> </pre><pre class="html" name="code"> </pre><pre class="html" name="code"> </pre>
    19. <pre></pre>

SSH2+proxool 出现No suitable driver found for proxool.mysqlProxool的更多相关文章

  1. 使用proxool 连接池:No suitable driver found for proxool

    使用proxool连接池时:报错误No suitable driver found for proxool.shide的原因: ①.WEB-INF目录下的lib中没有proxool连接池jar驱动包. ...

  2. struts2+hibernate+spring简单整合且java.sql.SQLException: No suitable driver 问题解决

    最近上j2ee的课,老师要求整合struts2+hibernate+spring,我自己其实早早地有准备弄的,现在都第9个项目了,无奈自己的思路和头绪把自己带坑了,当然也是经验问题,其实只是用myec ...

  3. Spark on Yarn:java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost\\db_instance_name:1433;databaseName=db_name

    本文只是针对当前特定环境下,出现的问题找不到sqljdbc驱动的案例.具体出现原因,可能是spark版本问题,也可能是集群配置问题. yarn-client方式下: 通过--jars参数指定驱动文件位 ...

  4. java.sql.SQLException: No suitable driver 问题解决

    最近在学习java,用到c3p0数据库连接池,遇到一个很奇怪的现象,用main方法测试是可以正常连接数据库的,但是使用jsp调用代码,就会报如下图的错误! 最下面的java.sql.SQLExcept ...

  5. java连接mysql :No Suitable Driver Found For Jdbc 解决方法

    今天出现编码出现了No suitable driver found for jdbc,又是找遍了网上的资料,基本上都说是以下个问题:    一是:连接URL格式出现了问题(Connection con ...

  6. No Suitable Driver Found For Jdbc_我的解决方法

    转载自:http://www.blogjava.net/w2gavin/articles/217864.html      今天出现编码出现了No suitable driver found for ...

  7. 出现java.sql.SQLException: No suitable driver的几种解决办法

    今天在用C3p0连接MySql数据库 这个时候出现了上面的错误, 一般来说这种错误有3个方向解决 一般都是db的配置的问题 ,一定要小心DB 的配置 八月 19, 2017 8:30:46 下午 co ...

  8. java.sql.SQLException:No suitable driver found for http://localhost:3306/school

    1.错误描述 java.sql.SQLException:No suitable driver found for http://localhost:3306/school 2.错误原因 Class. ...

  9. 关于mule中使用jdbc时报No Suitable Driver found错误的问题

    错误大概信息: Exception in thread "main" org.mule.module.launcher.DeploymentStartException: SQLE ...

随机推荐

  1. Python函数 __import__()

    功能: __import__() 函数用于动态加载类和函数 .返回元组列表. 如果一个模块经常变化就可以使用 __import__() 来动态载入. __import__ 语法: __import__ ...

  2. 微信无法跳转appstore总结--应用宝微下载申请

    以前是有方法,可以实现微信下跳转appstore的. 大概就是把url改为:http://mp.weixin.qq.com/mp/redirect?url="跳转url"(可编码也 ...

  3. [转载]create_proc_read_entry中函数的说明

    原型: struct proc_dir_entry *create_proc_read_entry (const char *name, mode_t mode, struct proc_dir_en ...

  4. 关于C#客户端引用C++ dll的问题

    近期在做项目的过程中需要在Winform客户端项目引用由C++编译的DLL,于是对相关的内容进行了一些研究,有几点心得总结如下. 第一步是制作要引用的类库: (1)首先拿到C++的dll,需要注意的是 ...

  5. UML解析

    1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...

  6. java代码继承难点。构造方法的调用

    总结:子类默认调用父类的无参构造方法.重写时,父类方法将被覆盖,不被调用,在子类中可以使用super.方法():可以实现 运行显示: evente.x:55 evente.x:55 B.y:57 pa ...

  7. TP-Link WR703N OpenWRT固件修改WAN LAN排序

    有一种方法就是macvlan了.添加到rc.local文件中,具体不再阐述. 此方法只适合编译固件的情况下调整WAN/LAN顺序. wr703n等(包含其他未列出的单网口路由,AP),修改WAN LA ...

  8. NAND FLASH 驱动分析

    NAND FLASH是一个存储芯片 那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线,       ...

  9. SignalR推送服务在Android的实现 SignalA

    SignalA是老外写的用于实现.net端推送消息至安卓端的实现,支持版本为android 2.3或以上,由于我的版本最低是2.2,所以只有把源码下下来自己改,如果你觉得太多了可自己编译成jar引用, ...

  10. Eclipse与github整合完整版

    最近朋友都推荐使用github管理自己的项目,而且免费用户可以有5个仓库,恰好我也想了解下git,借此机会学习一下. github官方指南使用独立第三方git工具来进行版本控制,并不借助于eclips ...