Unable to create requested service 异常处理

本文介绍了在使用Hibernate时遇到'Unable to create requested service'异常的解决方法,包括检查方言、URL格式以及数据库连接。通过在myEclipse的DBBrowser中测试连接,排查数据库和Hibernate配置问题。当遇到Can't get hostname for your address错误时,通过运行netsh winsock reset命令重置winsock,通常能解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天写了一个hibernate入门的Demo,当时写的时候没有那么多bug。 后来再帮同学改代码的时候发现BUG的形式多种多样,

而困扰我最大的bug就是Unable to create requested service这个了。本人总结了几点原因,希望多大家有帮助。

这是我的hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

		<hibernate-configuration>
		<session-factory>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
			<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>                                         
			<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/person</property>
			<property name="hibernate.connection.username">root</property>
			<property name="hibernate.connection.password">root</property>	
			<mapping resource="com/hust/Jsason/Student.hbm.xml" />	
		</session-factory>
		</hibernate-configuration>

这个BUG大概意思就是数据库连接不了,需求服务无法创建:

解决:1.检查你的方言,

org.hibernate.dialect.MySQLDialect

据说mysql5+的驱动包需要新的方言

org.hibernate.dialect.MySQL5Dialect

但是我感觉用处不大。

2.检查你的url

url的格式

jdbc:mysql://127.0.0.1:3306/person

这是mysql的,其他数据库的百度也有 找准主机号和端口号还有你的数据库。

千万不能拼错,很多bug就是单词原因。

3.数据库访问不了

如果以上两条你都没有犯错误,那么就可能使数据库的问题了,可以在myeclipse的  dbbrowser进行测试。

window-->show view--> dbbrowser

然后new一个链接。


填上你的各种信息,我的是这些,直接复制

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
			<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>                                         
			<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/person</property>
			<property name="hibernate.connection.username">root</property>
			<property name="hibernate.connection.password">root</property>	

如果连接成功证明你的数据库连接没问题,可能是hibernate 包的问题。

如果拼写没问题并且无法建立连接,那就可能是数据库的问题了。

Can't get hostname for your address

我就遇到了这个错误

我们要做的就是,打开CMD,运行netsh winsock reset,重修配置winsock文件,重启电脑。

无意外的话,就能连接上数据库了。

其实具体什么意思我也不太清楚,都是在论坛上看了两个小时的解决方案才找到了这个最优解。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值