lanazyit
酒馆笔记
采纳率25%
2017-03-14 14:18 阅读 9.8k
已采纳

Hibernate提示错误Unable to create requested service

5

异常提示如下:
------在加载Hibernate配置文件时抛出异常,内容如下:
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726)
at com.mwq.hibernate.HibernateSessionFactory.(HibernateSessionFactory.java:17)
at com.mwq.hibernate.BaseDao.queryList(BaseDao.java:29)
at com.mwq.hibernate.Dao.queryManagerOfNatural(Dao.java:141)
at com.mwq.frame.LandFrame.(LandFrame.java:100)
at com.mwq.PersonnelManage.land(PersonnelManage.java:32)
at com.mwq.PersonnelManage$1.run(PersonnelManage.java:26)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:105)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
at org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:123)
at org.hibernate.engine.jdbc.connections.internal.PooledConnections.(PooledConnections.java:42)
at org.hibernate.engine.jdbc.connections.internal.PooledConnections.(PooledConnections.java:20)
at org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:109)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
... 33 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 org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)
... 48 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)
... 53 more

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.mwq.hibernate.HibernateSessionFactory.getSession(HibernateSessionFactory.java:27)
at com.mwq.hibernate.BaseDao.queryList(BaseDao.java:29)
at com.mwq.hibernate.Dao.queryManagerOfNatural(Dao.java:141)
at com.mwq.frame.LandFrame.(LandFrame.java:100)
at com.mwq.PersonnelManage.land(PersonnelManage.java:32)
at com.mwq.PersonnelManage$1.run(PersonnelManage.java:26)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    lanazyit 酒馆笔记 2017-04-11 13:18

    可能是我问的问题太低端了,我放弃了

    点赞 评论 复制链接分享
  • boymzq boymzq 2017-03-14 15:17

    自己手写一个jdbc去联数据库,不要用hibernet,如果能连成功,说明是hibernet的问题,如果连不上,那就是数据库设置的问题,比如授权,等等的问题

    点赞 1 评论 复制链接分享
  • lanazyit 酒馆笔记 2017-03-14 14:20

    listener.ora文件

     # copyright (c) 1997 by the Oracle Corporation
    # 
    # NAME
    #   listener.ora
    # FUNCTION
    #   Network Listener startup parameter file example
    # NOTES
    #   This file contains all the parameters for listener.ora,
    #   and could be used to configure the listener by uncommenting
    #   and changing values.  Multiple listeners can be configured
    #   in one listener.ora, so listener.ora parameters take the form
    #   of SID_LIST_<lsnr>, where <lsnr> is the name of the listener
    #   this parameter refers to.  All parameters and values are
    #   case-insensitive.
    
    # <lsnr>
    #   This parameter specifies both the name of the listener, and
    #   it listening address(es). Other parameters for this listener
    #   us this name in place of <lsnr>.  When not specified,
    #   the name for <lsnr> defaults to "LISTENER", with the default
    #   address value as shown below.
    #
    # LISTENER =
    #  (ADDRESS_LIST=
    #   (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    #   (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))   
    
    # SID_LIST_<lsnr>
    #   List of services the listener knows about and can connect 
    #   clients to.  There is no default.  See the Net8 Administrator's
    #   Guide for more information.
    #
    # SID_LIST_LISTENER=
    #   (SID_LIST=
    #   (SID_DESC=
    #           #BEQUEATH CONFIG
    #          (GLOBAL_DBNAME=salesdb.mycompany)
    #          (SID_NAME=sid1)          
    #          (ORACLE_HOME=/private/app/oracle/product/8.0.3)
    #           #PRESPAWN CONFIG
    #         (PRESPAWN_MAX=20)
    #     (PRESPAWN_LIST=
    #           (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
    #         )
    #        )
    #  (SID_DESC =
    #                   (GLOBAL_DBNAME = ORCL)
    #                   (ORACLE_HOME = /private/app/oracle/product/8.0.3)
    #                   (SID_NAME = orcl)
    #            )
    #       )
    
    # PASSWORDS_<lsnr>
    #   Specifies a password to authenticate stopping the listener.
    #   Both encrypted and plain-text values can be set.  Encrypted passwords
    #   can be set and stored using lsnrctl.  
    #     LSNRCTL> change_password
    #       Will prompt for old and new passwords, and use encryption both
    #       to match the old password and to set the new one.
    #     LSNRCTL> set password
    #   Will prompt for the new password, for authentication with 
    #       the listener. The password must be set before running the next
    #       command.
    #     LSNRCTL> save_config
    #       Will save the changed password to listener.ora. These last two
    #       steps are not necessary if SAVE_CONFIG_ON_STOP_<lsnr> is ON.
    #       See below.
    #
    # Default: NONE
    #
    # PASSWORDS_LISTENER = 20A22647832FB454      # "foobar"
    
    # SAVE_CONFIG_ON_STOP_<lsnr>
    #   Tells the listener to save configuration changes to listener.ora when
    #   it shuts down.  Changed parameter values will be written to the file,
    #   while preserving formatting and comments.
    # Default: OFF
    # Values: ON/OFF
    #
    # SAVE_CONFIG_ON_STOP_LISTENER = ON
    
    # USE_PLUG_AND_PLAY_<lsnr>
    #   Tells the listener to contact an Onames server and register itself
    #   and its services with Onames.
    # Values: ON/OFF
    # Default: OFF
    #
    # USE_PLUG_AND_PLAY_LISTENER = ON
    
    # LOG_FILE_<lsnr>
    #   Sets the name of the listener's log file.  The .log extension
    #   is added automatically.
    # Default=<lsnr>
    #
    # LOG_FILE_LISTENER = lsnr
    
    # LOG_DIRECTORY_<lsnr>
    #   Sets the directory for the listener's log file.
    # Default: <oracle_home>/network/log
    #
    # LOG_DIRECTORY_LISTENER = /private/app/oracle/product/8.0.3/network/log
    
    # TRACE_LEVEL_<lsnr>
    #   Specifies desired tracing level.
    # Default: OFF
    # Values: OFF/USER/ADMIN/SUPPORT/0-16
    #
    # TRACE_LEVEL_LISTENER = SUPPORT
    
    # TRACE_FILE_<lsnr>
    #   Sets the name of the listener's trace file. The .trc extension
    #   is added automatically.
    # Default: <lsnr>
    #
    # TRACE_FILE_LISTENER = lsnr
    
    # TRACE_DIRECTORY_<lsnr>
    #   Sets the directory for the listener's trace file.
    # Default: <oracle_home>/network/trace
    #
    # TRACE_DIRECTORY_LISTENER=/private/app/oracle/product/8.0.3/network/trace
    # CONNECT_TIMEOUT_<lsnr>
    #   Sets the number of seconds that the listener waits to get a 
    #   valid database query after it has been started.
    # Default: 10
    #
    # CONNECT_TIMEOUT_LISTENER=10
    
    
    
    点赞 评论 复制链接分享
  • lanazyit 酒馆笔记 2017-03-14 14:23

    导入的一个完整的企业人事管理系统项目,jar包都在。装的是orcale11g。网上搜到可能是orcale监听问题,但是无法具体解决。下面贴出Hibernate配置文件:

    <property name="connection.driver_class"><!-- 配置数据库的驱动类 -->
                oracle.jdbc.driver.OracleDriver
            </property>
            <property name="connection.url"><!-- 配置数据库的连接路径 -->
                jdbc:oracle:thin:@127.0.0.1:1521:DBSQL
            </property>
            <property name="connection.username">PERSONNEL_MANAGE</property><!-- 配置数据库的连接用户名 -->
            <property name="connection.password">MWQ</property><!-- 配置数据库的连接密码,这里密码为空,在这种情况下也可以省略该行配置代码 -->
            <property name="dialect"><!-- 配置数据库使用的方言 -->
                org.hibernate.dialect.OracleDialect
            </property>
            <property name="show_sql">true</property><!-- 配置在控制台显示SQL语句 -->
            <property name="format_sql">true</property><!-- 配置对输出的SQL语句进行格式化 -->
            <property name="use_sql_comments">true</property><!-- 配置在输出的SQL语句前面添加提示信息 -->
    
    
    点赞 评论 复制链接分享
  • boymzq boymzq 2017-03-14 14:44

    可能jdk版本有问题

    点赞 评论 复制链接分享
  • zhijunming 鸿儒思密达 2017-10-19 08:25

    是你没有导入mysql的驱动包

    点赞 评论 复制链接分享

相关推荐