代码之家  ›  专栏  ›  技术社区  ›  Venki WAR

组织。阿帕奇。公猫dbcp。dbcp。SQLNestedException:无法创建PoolableConnectionFactory(协议冲突)

  •  1
  • Venki WAR  · 技术社区  · 6 年前
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Protocol violation)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
        at com.fourgid.struts.databaseutils.DataBasePlugin.init(DataBasePlugin.java:70)
        at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
        at javax.servlet.GenericServlet.init(GenericServlet.java:158)
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1269)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1182)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5660)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1260)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2002)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
    Caused by: java.sql.SQLException: Protocol violation
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:944)
        at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:521)
        at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:262)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:307)
        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
        at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
        ... 23 more
    

    我使用Tomcat连接数据库 上下文xml
    这是我的数据库连接代码。

    <Resource url="jdbc:oracle:thin:@xxx.xxx.x.xx:1521:xxx" 
        driverClassName="oracle.jdbc.driver.OracleDriver" 
        password="xxx" 
        username="xxx" 
        maxWait="1000" 
        maxIdle="30" 
        maxActive="100" 
        type="javax.sql.DataSource"
        auth="Container" 
        name="jdbc/xxx"/> 
    
    0 回复  |  直到 6 年前