Tomcat连接池 - java.lang.UnsupportedOperationException:不受BasicDataSource支持 [英] Tomcat Connection Pooling - java.lang.UnsupportedOperationException: Not supported by BasicDataSource

查看:161
本文介绍了Tomcat连接池 - java.lang.UnsupportedOperationException:不受BasicDataSource支持的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试过用于连接池的C3po库,但是我为我的代码获取错误信息,例如 abstractMethodError(),然后决定使用tomcat池。现在我得到了一个

I have tried C3po library for connection pooling but I am gettting errors such as abstractMethodError() for my code I then decided to go with the tomcat pooling thing. Now I am getting an

    java.lang.UnsupportedOperationException: Not supported by BasicDataSource
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1062)
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139)
    at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:522)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857)
    at classes.session.SessionCreate.buildSessionFactory1(SessionCreate.java:24)
    at classes.session.SessionCreate.<clinit>(SessionCreate.java:9)
    at classes.verifydata.CheckUniqueUserPass.uniqueUserPass(CheckUniqueUserPass.java:16)
    at org.apache.jsp.DataGen.CheckUserPassAvailable_jsp._jspService(CheckUserPassAvailable_jsp.java:70)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
    10:56:19,762  INFO [http-bio-8081-exec-5] StatisticalLoggingSessionEventListener:275 - Session Metrics {
        42607 nanoseconds spent acquiring 1 JDBC connections;
        0 nanoseconds spent releasing 0 JDBC connections;
        0 nanoseconds spent preparing 0 JDBC statements;
        0 nanoseconds spent executing 0 JDBC statements;
        0 nanoseconds spent executing 0 JDBC batches;
        0 nanoseconds spent performing 0 L2C puts;
        0 nanoseconds spent performing 0 L2C hits;
        0 nanoseconds spent performing 0 L2C misses;
        0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
        0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
    }
    Jan 06, 2015 10:56:19 AM org.apache.catalina.core.StandardWrapperValve invoke

我拥有Hibernate配置文件

I have the Hibernate configuration file as such

 <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="hibernate.connection.datasource">java:comp/env/jdbc/secure_pass</property>
        <property name="hibernate.connection.url">connectionurl</property>
        <property name="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
        <property name="hibernate.connection.username"></property>
        <property name="hibernate.connection.password"></property>

        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="net.sf.jasperreports.hql.query.run.type">list</property>
        <property name="net.sf.jasperreports.jdbc.fetch.size">50</property>
        <property name="net.sf.jasperreports.hql.clear.cache">true</property>
        <property name="net.sf.jasperreports.hql.query.list.page.size">50</property>

        ......

    </session-factory>
</hibernate-configuration>

我也有这样的context-xml文件:

I also have the context-xml file as such :

 <?xml version="1.0" encoding="UTF-8"?> 
    <Context antiJARLocking="true" path="/DVDStore">

  <Resource 
  auth="Container"
  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
  maxActive="30" maxIdle="10" 
  maxWait="10000" 
  name="jdbc/secure_pass" 
  password=""
  type="javax.sql.DataSource" 
  url="_DEV;" 
  username="r"/>
</Context>

不要担心这里的值......现在我得到了上面的异常:请帮助。我完成了链接所需的全部功能。

Do not worry about values here... Now I am getting the above exception: Please help. I have done All that which is required as per this link

p>

在我的例子中,开发人员添加了支持测试jar的附带第三方jar的hibernate.properties。

In my case developer had added supporting test jar accompanied with third party jar which had hibernate.properties.


Culprit正在填充属性 hibernate.connection.username
hibernate.connection.password

如果这些属性填充非空值,hibernate会调用

If these properties get populated with non null values, hibernate will call

@Override
    public Connection getConnection() throws SQLException {
        if ( !available ) {
            throw new HibernateException( "Provider is closed!" );
        }
        return useCredentials ? dataSource.getConnection( user, pass ) : dataSource.getConnection();
    }




dataSource.getConnection (user,pass) useCredentials为true

strong> org.apache.commons.dbcp.BasicDataSource 如下所示:

This method in class org.apache.commons.dbcp.BasicDataSource is as follows

public Connection getConnection(String user, String pass) throws SQLException {
        // This method isn't supported by the PoolingDataSource returned by
        // the createDataSource
        throw new UnsupportedOperationException("Not supported by BasicDataSource");
        // return createDataSource().getConnection(username, password);
    }

属性useCredentials被填充为

Property useCredentials is populated as

    user = (String) configValues.get( Environment.USER );
    pass = (String) configValues.get( Environment.PASS );
    useCredentials = user != null || pass != null;

在方法


public void configure(Map configValues)

public void configure(Map configValues)

这篇关于Tomcat连接池 - java.lang.UnsupportedOperationException:不受BasicDataSource支持的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆