Java SAXParseException;“元素类型”的内容;“会话工厂”;“必须匹配”;(属性*、映射*、(类缓存|集合缓存)*、事件*、侦听器*)”等;

Java SAXParseException;“元素类型”的内容;“会话工厂”;“必须匹配”;(属性*、映射*、(类缓存|集合缓存)*、事件*、侦听器*)”等;,java,hibernate,Java,Hibernate,我知道这个问题被问了无数次,我都读了,但找不到解决办法 我是Hibernate新手,我试图从数据库中获取一些值,并将其显示在由servlet控制的JSP中。但每次我运行我的项目时,都会出现以下错误: 当我去看日志时,我看到: Warning: StandardWrapperValve[be.coeneivan.servlet.AdminPane]: Servlet.service() for servlet be.coeneivan.servlet.AdminPane threw ex

我知道这个问题被问了无数次,我都读了,但找不到解决办法

我是Hibernate新手,我试图从数据库中获取一些值,并将其显示在由servlet控制的JSP中。但每次我运行我的项目时,都会出现以下错误:

当我去看日志时,我看到:

Warning:   StandardWrapperValve[be.coeneivan.servlet.AdminPane]: 

Servlet.service() for servlet be.coeneivan.servlet.AdminPane threw exception
java.lang.ExceptionInInitializerError
    at be.coeneivan.DB.HibernateUtil.buildSessionFactory(HibernateUtil.java:30)
    at be.coeneivan.DB.HibernateUtil.<clinit>(HibernateUtil.java:20)
    at be.coeneivan.DB.KokenHelper.<init>(KokenHelper.java:17)
    at be.coeneivan.servlet.AdminPane.doGet(AdminPane.java:59)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.hibernate.MappingException: invalid configuration
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2158)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2075)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2054)
    at be.coeneivan.DB.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
    ... 33 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 16; columnNumber: 21; The content of element type "session-factory" must match "(property*,mapping*,(class-cache|collection-cache)*,event*,listener*)".
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1994)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:879)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2155)
    ... 36 more
没什么特别的,只是默认的HibernateUtil类。。。 调用此类的servlet是:

import java.util.List;
import org.hibernate.Session;
public class KokenHelper {
    Session session = null;

    public KokenHelper() {
        this.session = HibernateUtil.getSessionFactory().openSession();
   }

    public List<Koken> getKokenList() {
        List<Koken> kokenList = null;
        try {
            kokenList = session.createQuery("FROM koken").list();
            for (Koken kok : kokenList){
                System.out.println(kok.getType());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return kokenList;
    }
}
import java.util.List;
导入org.hibernate.Session;
公共类KokenHelper{
会话=空;
公共KokenHelper(){
this.session=HibernateUtil.getSessionFactory().openSession();
}
公共列表getKokenList(){
List-kokenList=null;
试一试{
kokenList=session.createQuery(“来自koken”).list();
适用于(Koken-kok:kokenList){
System.out.println(kok.getType());
}
}捕获(例外e){
e、 printStackTrace();
}
返回kokenList;
}
}
我尝试了我在其他帖子中看到的每一件事,我不知道你们中是否有人能帮助我。但是如果你能,谢谢你

更新这里是我的XML


org.hibernate.dialogue.mysqldialogue
com.mysql.jdbc.Driver
jdbc:mysql://192.168.0.177:3307/webjava?zeroDateTimeBehavior=convertToNull
根
usbw
真的
线
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
您的“hibernate.cfg.xml”配置文件完全无效。错误消息已经告诉您了

元素类型“会话工厂”的内容必须匹配“(属性*,映射*,(类缓存|集合缓存),事件,侦听器*)”

您的配置文件首先显示一些属性,然后显示一些MapPin,然后再次显示sme属性。这是无效的,因为您必须遵守DTD的给定顺序。因此,正确的文件应该是:

<!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://192.168.0.177:3307/webjava?zeroDateTimeBehavior=convertToNull</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">usbw</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
        <mapping resource="be/coeneivan/DB/Koken.hbm.xml"/>
        <mapping resource="be/coeneivan/DB/User.hbm.xml"/>
        <mapping resource="be/coeneivan/DB/Userkoken.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

org.hibernate.dialogue.mysqldialogue
com.mysql.jdbc.Driver
jdbc:mysql://192.168.0.177:3307/webjava?zeroDateTimeBehavior=convertToNull
根
usbw
真的
线
org.hibernate.hql.classic.ClassicQueryTranslatorFactory

我在这篇文章中找到了解决方案: 简单地替换

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

org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory

谢谢大家!

看看异常——问题出在XML上:由以下原因引起:org.XML.sax.SAXParseException;行号:16;栏目号:21;元素类型“会话工厂”的内容必须匹配“(属性*,映射*,(类缓存|集合缓存)*,事件*,侦听器*)”。您尚未向我们显示您的XML,但问题似乎出现在第16行……作为附加信息:
会话工厂
元素是
hibernate.cfg.XML
配置文件的一部分。此文件显然无效。我刚刚编辑了我的帖子,向您展示了xml文件。我没有在那里改变任何东西……嗯。。。这是另一个问题。的确,但我已经找到了答案。非常感谢你的帮助!
<!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://192.168.0.177:3307/webjava?zeroDateTimeBehavior=convertToNull</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">usbw</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
        <mapping resource="be/coeneivan/DB/Koken.hbm.xml"/>
        <mapping resource="be/coeneivan/DB/User.hbm.xml"/>
        <mapping resource="be/coeneivan/DB/Userkoken.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>