在 VPS 服务器上部署时出现 Hibernate 异常

Hibernate Exception while deploying on VPS server

我是第一次使用 VPS 服务器来部署我的应用程序。我创建了一个 Hibernate 项目。部署后出现以下错误

org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2246) org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:230) org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:71) org.hibernate.cfg.Configuration.configure(Configuration.java:2158) org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:212) org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:71) org.hibernate.cfg.Configuration.configure(Configuration.java:2137) org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:206) util.HibernateUtil.(HibernateUtil.java:26) services.HibernateServices.(HibernateServices.java:41) servlet.GetShopProfile.processRequest(GetShopProfile.java:42) servlet.GetShopProfile.doGet(GetShopProfile.java:77) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

为了测试我的数据库是否工作正常,我创建了一个正常的数据库连接 class,它工作正常。

hibernate.cfg.xml

<?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.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">root</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.connection.pool_size">1</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <!--<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>-->
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <mapping class="pojo.TestClass"/>

  </session-factory>
</hibernate-configuration>

目录结构

WEB-INF
    classes
        pojo
            TestClass.class
        services
            HibernateService.class
        servlet
            TestServlet.class
        util
            HibernateUtil.class
        hibernate.cfg.xml

我们安装了 Tomcat 7.0。 请帮忙!!!

将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">

您可以尝试在评论行中添加 space 吗?

<!--<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>-->

将上面一行替换为

<!-- <property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property> -->

我认为在您的评论开始部分之后开始标记 < 会导致 xml 解析问题。

我通过在我的服务器上重新安装 tomcat 解决了这个问题。 按照问题中的建议更改 DTD 可以解决此问题的任何方法:

我在我的案例中尝试了多种解决方案,但最后没有任何效果,我重新安装了 tomcat,一切都很好

感谢大家的投入和时间。