Java 使用UCP(通用连接池)通过JDBC访问Oracle Express数据库

Java 使用UCP(通用连接池)通过JDBC访问Oracle Express数据库,java,maven,jdbc,oracle-xe,ucp,Java,Maven,Jdbc,Oracle Xe,Ucp,我正在使用Oracle Express(XE)并通过JDBC连接到它。代码实现了一个通用连接池(UCP) 出于某种原因,当我尝试建立新连接时,我会: java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource 我正在使用maven运行我的tomcat服

我正在使用Oracle Express(XE)并通过JDBC连接到它。代码实现了一个通用连接池(UCP)

出于某种原因,当我尝试建立新连接时,我会:

java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource
我正在使用maven运行我的tomcat服务器

mvn tomcat7:run
我是否需要向pom.xml或Oracle本身添加任何额外的配置以使UCP工作

以下是stacktrace:

java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource
    at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:541)
    at oracle.ucp.jdbc.PoolDataSourceImpl.throwSQLException(PoolDataSourceImpl.java:588)
    at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:277)
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:647)
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:614)
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:608)
    at com.websitepros.sql.UCPConnectionPoolImpl.borrowConnection(UCPConnectionPoolImpl.java:268)
    at com.websitepros.sql.ConnectionFactoryImpl.borrowConnection(ConnectionFactoryImpl.java:60)
    at com.websitepros.sql.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:49)
    at com.websitepros.sql.Table.getConnection(Table.java:196)
    at com.websitepros.matrix.dataobjects.tables.PartnersTable.selectAll(PartnersTable.java:513)
    at com.websitepros.util.PartnerTreeUtil.buildMap(PartnerTreeUtil.java:92)
    at com.websitepros.util.PartnerTreeUtil.<init>(PartnerTreeUtil.java:38)
    at com.websitepros.util.dbproperties.DBPartnerProperties.load(DBPartnerProperties.java:44)
    at com.websitepros.util.PropertiesUtil.getProperties(PropertiesUtil.java:47)
    at com.websitepros.util.PropertiesUtil.getProperties(PropertiesUtil.java:35)
    at com.rocktide.integration.mip.PartnerAttributes.<init>(PartnerAttributes.java:76)
    at com.rocktide.integration.mip.BuilderEnvironment.createPartnerAttributes(BuilderEnvironment.java:68)
    at com.rocktide.integration.mip.BuilderEnvironment.createPartnerAttributes(BuilderEnvironment.java:53)
    at com.websitepros.matrix.partners.hermes.Authenticate.serviceRequest(Authenticate.java:74)
    at com.websitepros.servlet.WebComGenericServlet.doPost(WebComGenericServlet.java:31)
    at com.websitepros.servlet.WebComGenericServlet.doGet(WebComGenericServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:745)
Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource
    at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:421)
    at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:389)
    at oracle.ucp.jdbc.DriverConnectionFactoryAdapter.createConnection(DriverConnectionFactoryAdapter.java:134)
    at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.createOnePooledConnectionInternal(UniversalConnectionPoolImpl.java:1613)
    at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.access$600(UniversalConnectionPoolImpl.java:1421)
    at oracle.ucp.common.UniversalConnectionPoolImpl.createOnePooledConnection(UniversalConnectionPoolImpl.java:488)
    at oracle.ucp.common.UniversalConnectionPoolImpl.addNewConnections(UniversalConnectionPoolImpl.java:988)
    at oracle.ucp.common.UniversalConnectionPoolBase.getInitialConnections(UniversalConnectionPoolBase.java:541)
    at oracle.ucp.common.UniversalConnectionPoolBase.start(UniversalConnectionPoolBase.java:655)
    at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:271)
    ... 37 more
Caused by: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at oracle.ucp.jdbc.DriverConnectionFactoryAdapter.createConnection(DriverConnectionFactoryAdapter.java:130)
    ... 44 more
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 49 more
java.sql.SQLException:无法启动通用连接池:oracle.ucp.UniversalConnectionPoolException:无法从数据源获取连接
位于oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:541)
位于oracle.ucp.jdbc.PoolDataSourceImpl.throwSQLException(PoolDataSourceImpl.java:588)
位于oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:277)
位于oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:647)
位于oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:614)
位于oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:608)
在com.websitepros.sql.UCPConnectionPoolImpl.borrowConnection(UCPConnectionPoolImpl.java:268)
在com.websitepros.sql.ConnectionFactoryImpl.borrowConnection(ConnectionFactoryImpl.java:60)上
在com.websitepros.sql.connectionfactorympl.getConnection(connectionfactorympl.java:49)
位于com.websitepros.sql.Table.getConnection(Table.java:196)
位于com.websitepros.matrix.dataobjects.tables.PartnersTable.selectAll(PartnersTable.java:513)
位于com.websitepros.util.PartnerTreeUtil.buildMap(PartnerTreeUtil.java:92)
位于com.websitepros.util.PartnerTreeUtil.(PartnerTreeUtil.java:38)
在com.websitepros.util.dbproperties.DBPartnerProperties.load(DBPartnerProperties.java:44)上
位于com.websitepros.util.PropertiesUtil.getProperties(PropertiesUtil.java:47)
位于com.websitepros.util.PropertiesUtil.getProperties(PropertiesUtil.java:35)
位于com.rocktide.integration.mip.PartnerAttributes。(PartnerAttributes.java:76)
位于com.rocktide.integration.mip.BuilderEnvironment.createPartnerAttributes(BuilderEnvironment.java:68)
位于com.rocktide.integration.mip.BuilderEnvironment.createPartnerAttributes(BuilderEnvironment.java:53)
位于com.websitepros.matrix.partners.hermes.Authenticate.serviceRequest(Authenticate.java:74)
位于com.websitepros.servlet.WebComGenericServlet.doPost(WebComGenericServlet.java:31)
位于com.websitepros.servlet.WebComGenericServlet.doGet(WebComGenericServlet.java:24)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
位于org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
运行(Thread.java:745)
原因:oracle.ucp.UniversalConnectionPoolException:无法从数据源获取连接
位于oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:421)
位于oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:389)
位于oracle.ucp.jdbc.DriverConnectionFactoryAdapter.createConnection(DriverConnectionFactoryAdapter.java:134)
在oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.createOnePoolledConnectionInternal(UniversalConnectionPoolImpl.java:1613)
在oracle.ucp.common.UniversalConnectionPoolImpl$universalconnectionpoolternal.access$600(UniversalConnectionPoolImpl.java:1421)
在oracle.ucp.common.UniversalConnectionPoolImpl.createOnePooledConnection(UniversalConnectionPoolImpl.java:488)
在oracle.ucp.common.UniversalConnectionPoolImpl.addNewConnections(UniversalConnectionPoolImpl.java:988)
在oracle.ucp.common.UniversalConnectionPoolBase.getInitialConnections(UniversalConnectionPoolBase.java:541)
在oracle.ucp.common.UniversalConnectionPoolBase.start(UniversalConnectionPoolBase.java:655)
位于oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:271)
... 37多
原因:java.sql.SQLException:侦听器拒绝连接,出现以下错误:
ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
位于oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:531)
位于oracle.jdbc.driver.T4CConnection(T4CConnection.java:221)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
在oracle.ucp.jdbc.DriverConnectionFactoryAdapter.createConnection(DriverConnectionFactory
 (SID = XE)
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Lenovo-PC)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
      (SID = XE)
    )
  )
 (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
    )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
    )
  )