当前位置: 首页 > 知识库问答 >
问题:

Hibernate无法解析配置:/hibernate.cfg.xml

宣弘新
2023-03-14

嘿,伙计们,我是冬眠的初学者,我知道这里有很多类似的问题。我试图从他们那里解决问题,但我做不到。我还试图在dtd中更改公共系统,但它不起作用。我在google上搜索了它,但它显示的每个地方都有dtd语句错误。

这是我的配置文件。

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
   <hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver/property> 
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> 
<property name="username">root</property> 
<property name="password"></property>
<property name="connection.pool_size">1</property>  
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="hbm2ddl.auto">update</property>
<mapping class="org.hibernate.src.userDetails" /> 
</session-factory>
</hibernate-configuration>

我尝试将版本3.0更改为4.0,因为我使用的是hibernate版本4.3.6,但它仍然不起作用。请帮帮我。

这是我的用户详细信息类...

包装组织。冬眠src;

@Entity
public class userDetails {
@Id
private int userId ;
private String userName;
@Embedded
private Address address;


public Address getAddress() {
    return address;
}

public void setAddress(Address address) {
    this.address = address;
}

public int getUserId() {
    return userId;
}

public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}
public void setUserId(int userId) {
    this.userId = userId;

}


}

我已将这些jar文件添加到我的项目中:

lib\jpa\hibernate-entitymanager-4.3.6.Final.jar
lib\required\antlr-2.7.7.jar
lib\required\dom4j-1.6.1.jar
lib\required\hibernate-commons-annotations-4.0.5.Final.jar
lib\required\hibernate-core-4.3.6.Final.jar
lib\required\hibernate-jpa-2.1-api-1.0.0.Final.jar
lib\required\jandex-1.1.0.Final.jar
lib\required\javassist-3.18.1-GA.jar
lib\required\jboss-logging-3.1.3.GA.jar
lib\required\jboss-logging-annotations-1.2.0.Beta1.jar
lib\required\jboss-transaction-api_1.2_spec-1.0.0.Final.jar

这是我在运行应用程序时得到的

Oct 13, 2014 4:24:47 PM      
 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
 INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
 Oct 13, 2014 4:24:47 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.6.Final}
Oct 13, 2014 4:24:47 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Oct 13, 2014 4:24:47 PM org.hibernate.cfg.Environment buildBytecodeProvider  
INFO: HHH000021: Bytecode provider name : javassist
Oct 13, 2014 4:24:47 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
Oct 13, 2014 4:24:47 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml 
 Exception in thread "main" org.hibernate.HibernateException: Could not parse     
configuration: /hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2163)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2075)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2054)
at org.hibernate.test.userTest.main(userTest.java:18)
Caused by: org.dom4j.DocumentException: Error on line 4 of document  : Content is not    
allowed in prolog. Nested exception: Content is not allowed in prolog.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2155)
... 3 more

共有3个答案

鲁泰宁
2023-03-14

问题在下面这行。

"-//Hibernate/Hibernate Configuration DTD .0//EN"

它应该如下:

"-//Hibernate/Hibernate Configuration DTD 4.0//EN"

注意:您在4.0中缺少4,您只有.0

如果不起作用,请将DTD更改为以下内容:

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
高鸿振
2023-03-14

需要互联网连接才能运行您的示例:

<?xml version='1.0' encoding='UTF-8'?>  
<!DOCTYPE hibernate-configuration PUBLIC  
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/db</property>
        <property name="connection_pool_size">1</property>
        <property name="hbm2ddl.auto">update</property>
        <property name="show_sql">true</property>

        <mapping resource="employee.hbm.xml" />
    </session-factory>

</hibernate-configuration>

不需要互联网连接来运行您的示例:

<?xml version='1.0' encoding='UTF-8'?>  

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/springdb</property>
        <property name="connection_pool_size">1</property>
        <property name="hbm2ddl.auto">update</property>
        <property name="show_sql">true</property>

        <mapping resource="employee.hbm.xml" />
    </session-factory>

</hibernate-configuration>

这两个配置文件之间的唯一区别是DTD不同。

司寇阳朔
2023-03-14

如你所说,我更新了我的dtd。非常感谢。

我换了标签。然后,它显示了标签前面的空白b错误。

我解决了它,然后它向我显示了可访问数据库Hibernate的错误。我尝试了很多,甚至我重新安装了我的wamp服务器,尽管它不起作用。

最后,我创建了一个新的数据库,并更改了我的hibernate.cfg.xml文件。

这是我的文件,工作很酷...

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<property name="connection.url">jdbc:mysql://localhost/test</property> 
<property name="username">root</property> 
<property name="password" /> 
<property name="connection.pool_size">1</property>  
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="hbm2ddl.auto">update</property>
<mapping class="org.hibernet.src.userDetails" ></mapping> 
</session-factory>
</hibernate-configuration>
 类似资料:
  • 问题内容: 大家好,我是hibernate的初学者,我知道这里有很多类似的问题。我试图从他们那里解决,但我做不到。我还试图在dtd中将SYSTEM从PUBLIC更改为,但是它不起作用。我用谷歌搜索它,但是到处都显示dtd语句错误。 这是我的配置文件。 我尝试将版本3.0更改为4.0,因为我正在使用hibernate版本4.3.6,但仍无法正常工作。请帮帮我。 这是我的userDetails类。 软

  • 我目前正面临这个问题。该项目以前没有任何构建问题。直到今天,当我试图构建它时,才出现了这个错误。 Gradle:配置项目“:project”时出现问题。

  • 我试图实现一个第三方的SDK捆绑包时,我运行我得到了以下错误: 任务“:app:checkDebugarMetadata”的执行失败。 无法解析配置“:app:debugRuntimeClasspath”的所有文件。 无法解析com。ts.auth-control-sdk:5.1.1。要求:项目:应用 sun.security.provider.certpath.SunCertPathBuilde

  • 在1s内成功配置 调用mockable JAR工件转换来创建文件:C:\Users。。。gradle\caches\transforms-1\files-1.1\android。jar\637e2bccbff6bd0f7a7583f7e9d4551b\android。输入C:\Users的jar。。。\AppData\Local\Android\Sdk\platforms\Android-28\A

  • 后添加包在pubspec.yaml文件。 我试图运行我的flutter应用程序,但运行失败。 错误,我有当我试图运行flutter项目:

  • 我有一个常春藤和人工制品设置要发布,并依赖于构建。 在Artifactory中,我有一个Ivy文件,大致如下: 当我在另一个项目中依赖这个模块时,我指定了编译配置,但IvyDE告诉我编译不存在。 在这个设置中,我得到了错误消息 “在组织#模块中找不到配置;0.277-快照:'编译'” 如果依赖conf更新为编译,我确实会得到jar- 有什么建议吗?