proxool 有个问题就是,你的user跟password都写了也没用,其实你要写在url里面才可以,不知道你有没有注意到这个问题,好多人都知道的呀~~~你先试试把url写全了吧

解决方案 »

  1.   

    把我用的给你贴出来吧,没有遇到这样的问题
    <?xml version="1.0" encoding="UTF-8"?>
    <something-else-entirely>
        <proxool>
            <alias>olyvem</alias>
            <driver-url>jdbc:jtds:sqlserver://133.133.133.34:1433/olyvemAdd</driver-url>
            <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
            <driver-properties>
                <property name="user" value="olyvem"/>
                <property name="password" value="olyvem"/>
            </driver-properties>
            <minimum-connection-count>2</minimum-connection-count>
            <maximum-connection-count>4</maximum-connection-count>
            <house-keeping-test-sql>SELECT { fn NOW() }</house-keeping-test-sql>
            <trace>false</trace>
            <verbose>false</verbose>
        </proxool>
    </something-else-entirely>
      

  2.   

    感谢两位的回答
    RE:woyaoying(凉爽的风) 
    这个配置的问题不是URL的问题,这样写我已经配置成功了.而且这个配置是官网上的配置,应该是没问题的.
    RE:thirtysix1207(大虫) 
    你贴出来的这个配置是使用的connection的配置,这个我也已经配置成功了.我现在需要的是在JNDI上绑定proxool dataSource.
    刚才发布的问题我已经解决了.我现在的问题是使用Hibernate配置JNDI数据源时候找不到dataSource 报错原因请大家看下.因该是命名问题,可是不知道怎么配置这个:
    org.hibernate.HibernateException: Could not find datasource
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:48)
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:80)
    at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:362)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:60)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
    at com.nj.test.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:60)
    at com.nj.test.HibernateSessionFactory.getSession(HibernateSessionFactory.java:43)
    at com.nj.test.vo.UserDAO.toSave(UserDAO.java:10)
    at com.nj.test.AddServlet.doGet(AddServlet.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: org.logicalcobwebs.proxool.ProxoolDataSource [Root exception is java.lang.ClassCastException: org.logicalcobwebs.proxool.ProxoolDataSource cannot be cast to javax.naming.spi.InitialContextFactory]
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.InitialContext.<init>(InitialContext.java:197)
    at org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:28)
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:44)
    ... 25 more
    Caused by: java.lang.ClassCastException: org.logicalcobwebs.proxool.ProxoolDataSource cannot be cast to javax.naming.spi.InitialContextFactory
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
    ... 30 more
      

  3.   

    factory="org.logicalcobwebs.proxool.ProxoolDataSource" 
    这句有问题,看异常:
    Caused by: java.lang.ClassCastException: org.logicalcobwebs.proxool.ProxoolDataSource cannot be cast to javax.naming.spi.InitialContextFactory
    说ProxoolDataSource 不能转化成InitialContextFactory所以你这个ProxoolDataSource对象是适合的工厂吗?
      

  4.   

    proxool.test-before-use   =   "true "   
    估计是这个参数引起的,我加了这个参数也报你一样的错,还不知道怎么解决
      

  5.   

    贴出你的hibernate配置看一下,可能是hibernate配置的有问题,我一般是重写数据源
      

  6.   


    显然是没有设置“house-keeping-test-sql”参数,你要求使用前测试,但没有设置怎么测试。
      

  7.   

       把 proxool.test-before-use = "true " 改成 false 就ok了,我测试成功