Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在hibernate中配置时拒绝jdbc连接_Java_Sql_Oracle_Hibernate_Jdbc - Fatal编程技术网

Java 在hibernate中配置时拒绝jdbc连接

Java 在hibernate中配置时拒绝jdbc连接,java,sql,oracle,hibernate,jdbc,Java,Sql,Oracle,Hibernate,Jdbc,我使用Oracle12c和JarOJDBC7在hibernate中配置DB。但我得到了以下错误: org.hibernate.exception.JDBCConnectionException:调用驱动程序#connect时出错 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122) 位于org.hibernate.en

我使用Oracle12c和JarOJDBC7在hibernate中配置DB。但我得到了以下错误:

org.hibernate.exception.JDBCConnectionException:调用驱动程序#connect时出错 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140) 位于org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.configure(DriverManager连接ProviderImpl.java:106) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) 位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.buildJdbcConnectionAccess(jdbcservicesiml.java:260) 位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:94) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) 位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) 位于com.vikas.hibernate.HibernateTest.main(HibernateTest.java:21) 原因:java.sql.SQLException:侦听器拒绝连接,出现以下错误: ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 14 more
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:272)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:263)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 19 more
我的hibernate.cfg.xml如下所示: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:localhost:1522/DevDb 系统 神谕123

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.OracleDialect</property>

    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>

1.
org.hibernate.dialen.oraclealent
org.hibernate.cache.internal.NoCacheProvider
真的
创造
有人能帮我解决这个问题吗


上面说

ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 14 more
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:272)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:263)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 19 more

我给出的SID是正确的。

您的jdbc连接字符串几乎正确

oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:localhost:1522/DevDb 
这是正确的

oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@//localhost:1522/DevDb

另外,在尝试ORM方式之前,请确保尝试使用sqlplus登录

您的设置是正确的,与persistence.xml->older(hibernate.cfg.xml)中的settins无关

虽然在服务器Logg中没有这个例外,但在APP Logg中,我在一个应用程序中看到了很短的一段时间。我对此进行了分析,并且我的逻辑处理正确,这意味着这是一个oracleXE bug、应用服务器bug或ORM提供者bug(hibernate)!这是肯定的,这个应用程序从几个月前就开始运行了,但是这个验证在知道之前从未发生过,关键是nobdy调用了一个客户端调用!我重启了服务器,一切似乎都正常


如果网络连接中断很短时间,服务器和数据库之间的数据对象无法进行序列化,可能会发生这种情况,我不知道,这可能会发生,因为例如JBoss正在缓存数据

您可以使用其他工具连接到数据库吗,例如SQL*Plus?嗨,Bjarte。。。这有助于。。。但是现在我又遇到了一个问题:java.sql.SQLRecoverableException:IO错误:网络适配器无法建立连接您可以使用sqlplus连接吗?你确定是1522年吗?C:\>tnsping devdbt的输出是多少。。它正在工作。。。你是对的。。服务器必须启动。。从字符串jdbc:oracle:thin:@//localhost:1522/DevDb/“中必须删除,以便现在可以正常工作……:)