Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 4.0 XSD上的休眠异常_Java_Hibernate_Xsd_Schema_Dtd - Fatal编程技术网

Java 4.0 XSD上的休眠异常

Java 4.0 XSD上的休眠异常,java,hibernate,xsd,schema,dtd,Java,Hibernate,Xsd,Schema,Dtd,第一次使用Hibernate时,出现了一个奇怪的错误。我使用的是4.2.3最终版,我希望使用4.0 XSD模式,但如果需要3.0 DTD才能使其正常工作,我将使用3.0 DTD 我的司机: public static void main(String[] args) { Configuration configuration = new Configuration(); configuration.configure("hibernate/cfg/hibernate.cfg.xm

第一次使用Hibernate时,出现了一个奇怪的错误。我使用的是
4.2.3最终版
,我希望使用4.0 XSD模式,但如果需要3.0 DTD才能使其正常工作,我将使用3.0 DTD

我的司机:

public static void main(String[] args) {
    Configuration configuration = new Configuration();
    configuration.configure("hibernate/cfg/hibernate.cfg.xml");
    ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration
            .getProperties());
    SessionFactory sessionFactory = configuration
            .buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry());
    Session session = sessionFactory.openSession();

    Transaction tx = session.beginTransaction();

    User user = new User("Dr.", "Sylvester", "McMonkey", "McBean", "IV");

    session.save(user);
    tx.commit();
    session.close();
}
我的
hibernate.cfg.xml
文件,位于我的项目中
src/main/config/hibernate/cfg
下:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-configuration
        xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
        xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration hibernate-configuration-4.0.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://my-server:3306/my_db</property>
        <property name="hibernate.connection.username">myuser</property>
        <property name="hibernate.connection.password">password</property>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="use_sql_comments">true</property>

        <property name="hbm2ddl.auto">validate</property>

        <mapping resource="User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

org.hibernate.dialogue.mysqldialogue
com.mysql.jdbc.Driver
jdbc:mysql://my-server:3306/my_db
我的用户
密码
真的
真的
真的
验证
stacktrace Eclipse给了我:

Jul 27, 2013 9:10:08 AM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
Jul 27, 2013 9:10:08 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.3.Final}
Jul 27, 2013 9:10:08 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jul 27, 2013 9:10:08 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jul 27, 2013 9:10:08 AM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate/cfg/hibernate.cfg.xml
Jul 27, 2013 9:10:08 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate/cfg/hibernate.cfg.xml
Exception in thread "main" org.hibernate.MappingException: invalid configuration
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2070)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1987)
    at com.apponomical.adaptors.datasource.HibernateDriver.main(HibernateDriver.java:15)
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 25; Document is invalid: no grammar found.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
    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:387)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:321)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:226)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3080)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:899)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067)
    ... 2 more
2013年7月27日上午9:10:08 org.hibernate.annotations.common.Version
信息:HCANN000001:Hibernate Commons注释{4.0.2.Final}
2013年7月27日上午9:10:08 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.2.3.Final}
2013年7月27日上午9:10:08 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2013年7月27日上午9:10:08 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2013年7月27日上午9:10:08 org.hibernate.cfg.Configuration
信息:HH000043:从资源配置:hibernate/cfg/hibernate.cfg.xml
2013年7月27日上午9:10:08 org.hibernate.cfg.Configuration getConfigurationInputStream
信息:hh000040:配置资源:hibernate/cfg/hibernate.cfg.xml
线程“main”org.hibernate.MappingException中出现异常:配置无效
位于org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2070)
位于org.hibernate.cfg.Configuration.configure(Configuration.java:1987)
位于com.apponomical.adapters.datasource.HibernateDriver.main(HibernateDriver.java:15)
原因:org.xml.sax.saxpasseeption;行号:2;栏目号:25;文档无效:未找到语法。
位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
位于com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
位于com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:387)
请访问com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:321)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement上(XMLNSDocumentScannerImpl.java:226)
位于com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3080)
在com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:899)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
位于com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.parse(saxpasserimpl.java:525)
位于org.dom4j.io.SAXReader.read(SAXReader.java:465)
位于org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067)
... 还有两个

想法?思想?建议?提前谢谢

验证程序找不到架构。xsi:schemaLocation属性告诉它在与正在验证的配置文档相同的目录中查找模式文档hibernate-configuration-4.0.xsd(…/src/main/config/hibernate/cfg)。在Hibernate 4.x中,您应该使用与3.x相同的DTD,正如您可以从中看到的,其中删除了弃用警告。 正如您所看到的,4.2版的教程也使用了这一点