当前位置: 首页 > 面试题库 >

离线时无法解析hibernate.cfg.xml

马浩淼
2023-03-14
问题内容

每当我断开互联网连接时,都会收到以下异常:

org.hibernate.HibernateException: Could not parse configuration: com/mashlife/resources/hibernate.cfg.xml
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542)
    at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035)
    at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1476)
    at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1017)

Caused by: org.dom4j.DocumentException: www.hibernate.org Nested exception: www.hibernate.org
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1532)
    ... 45 more

在我离线时发生。hibernate时,在解析配置时是否尝试读取DTD?根本原因是什么?

这是我的hibernate.cfg.xml:

<?xml version='1.0' encoding='utf-8'?>
<!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>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/foo</property>
        <property name="connection.username">user</property>
        <property name="connection.password">pass</property>

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

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

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

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

        <!-- Names the annotated entity class -->
        <!--<mapping class="org.hibernate.tutorial.annotations.Event"/>-->

    </session-factory>

</hibernate-configuration>

问题答案:

Hibernate可以在本地解析DTD(无需网络连接)。

您的DOCTYPE使用的是Hibernate 3.6
的新名称空间(http://www.hibernate.org/dtd/),因此您的类路径中可能具有较旧版本的Hibernate库。

升级到Hibernate
3.6.8.Final后,我遇到了相同的问题。我在类路径上有hibernate3.jar的多个版本,导致加载了旧的不兼容版本的DTD实体解析器,该版本仅适用于旧的命名空间(http://hibernate.sourceforge.net/)。作为参考,这是更新的DTD实体解析器的链接。

我正在使用hibernate3-maven-plugin,它对较旧版本的Hibernate具有传递依赖,因此我只需要指定对Hibernate
3.6.8.Final的插件依赖即可。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
    ...
</configuration>
<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.8.Final</version>
    </dependency>
</dependencies>
</plugin>


 类似资料:
  • 目标 提交mr/spark作业对存储在SDS上的数据进行离线分析, 可以使用自己搭建的yarn集群,或小米EMR服务 galaxy-hadoop库 我们封装离线分析库galaxy-hadoop,可以参考其中的example MR job: sds-mapreduce spark job: sds-spark 注意 离线分析读请求应访问SDS备集群的Endpoint,访问主集群可能会影响在线请求.

  • 我试图将sqldelight集成到Android/iOS的多平台库项目中,但在同步Gradle时出现了几个未解决的依赖错误。 错误:无法解析“:SharedCode@Debug/CompileClasspath”得依赖项:无法解析com.squareup.sqldelight:运行时:1.1.3. 错误:无法解析“:SharedCode@Release/CompileClasspath”得依赖项:

  • 问题内容: 这是我在JSP文件中的Java代码。我正进入(状态 无法解析Base64Encoder。 为什么会这样呢?我必须添加与相关的内容。任何建议将不胜感激。 问题答案: 看起来您正在使用Web应用程序中包含的jar中不存在的类。您可以尝试以下吗?如有必要,请进行调整,我只是在查看通用文档,然后将其输入- 转到http://commons.apache.org/codec/index.html

  • 问题内容: 因此,我直接从Google的android网站复制了此教程示例内容,却收到一个错误,指出R.id无法解决。 这是我的Java文件 这是我的 问题答案: 您必须导入您的R类 同样,如需求发布一样,您必须为布局使用名称空间。

  • 问题内容: 之前一切正常。然后,我碰巧将一个新的xml文件添加到布局中。现在,当setContentView指向(R.layout.menu)时,我的一个类给出了错误。Eclipse告诉我R.layout.menu无法解析。我不知道为什么。我在布局文件夹中定义了一个称为菜单的布局。 有什么建议? 问题答案: 您是否执行过项目>清洁?有时,您只需要让Eclipse重新生成R文件即可。