首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate异常:无法解析映射文档

Hibernate异常:无法解析映射文档
EN

Stack Overflow用户
提问于 2009-10-24 20:03:24
回答 3查看 16.2K关注 0票数 2

我用netbeans 6.7.1用hibernate写了"hello world“,但是我遇到了一些错误,请帮助我,非常感谢。

我的异常

[线程"main“org.hibernate.InvalidMappingException中的异常:无法解析来自资源hibernate/Tbluser.hbm.xml的映射文档]

代码语言:javascript
运行
复制
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
Copying 1 file to F:\Documents and Settings\My Dropbox\DropboxNetBeanProjects\loginspring\build\web\WEB-INF\classes
compile-single:
run-main:
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.5
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Oct 25, 2009 2:44:05 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
Oct 25, 2009 2:44:06 AM org.hibernate.cfg.Configuration addResource
INFO: Reading mappings from resource : hibernate/Tbluser.hbm.xml
Oct 25, 2009 2:44:06 AM org.hibernate.util.XMLHelper$ErrorLogger error
SEVERE: Error parsing XML: XML InputStream(1) Document is invalid: no grammar found.
Oct 25, 2009 2:44:06 AM org.hibernate.util.XMLHelper$ErrorLogger error
SEVERE: Error parsing XML: XML InputStream(1) Document root element "hibernate-mapping", must match DOCTYPE root "null".
Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource hibernate/Tbluser.hbm.xml
        at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
        at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
        at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
        at hibernate.CreateTest.main(CreateTest.java:22)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
        at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:502)
        at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
        ... 7 more
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:250)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        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:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at org.dom4j.io.SAXReader.read(SAXReader.java:465)
        at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
        ... 8 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

hibernate.cfg.xml

代码语言:javascript
运行
复制
<?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/hibernate</property>
    <property name="hibernate.connection.username">root</property>
  </session-factory>
</hibernate-configuration>

Tbluser.hbm.xml

代码语言:javascript
运行
复制
 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Oct 25, 2009 2:37:30 AM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="hibernate.Tbluser" table="tbluser" catalog="hibernate">
        <id name="userId" type="java.lang.Integer">
            <column name="userID" />
            <generator class="identity" />
        </id>
        <property name="username" type="string">
            <column name="username" length="50" />
        </property>
        <property name="password" type="string">
            <column name="password" length="50" />
        </property>
        <property name="email" type="string">
            <column name="email" length="50" />
        </property>
        <property name="phone" type="string">
            <column name="phone" length="50" />
        </property>
        <property name="groupId" type="java.lang.Integer">
            <column name="groupID" />
        </property>
    </class>
</hibernate-mapping>

Tbluser.java

代码语言:javascript
运行
复制
  package hibernate;
// Generated Oct 25, 2009 2:37:30 AM by Hibernate Tools 3.2.1.GA



    /**
     * Tbluser generated by hbm2java
     */
    public class Tbluser  implements java.io.Serializable {


         private Integer userId;
         private String username;
         private String password;
         private String email;
         private String phone;
         private Integer groupId;

        public Tbluser() {
        }

        public Tbluser(String username, String password, String email, String phone, Integer groupId) {
           this.username = username;
           this.password = password;
           this.email = email;
           this.phone = phone;
           this.groupId = groupId;
        }

        public Integer getUserId() {
            return this.userId;
        }

        public void setUserId(Integer userId) {
            this.userId = userId;
        }
        public String getUsername() {
            return this.username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return this.password;
        }

        public void setPassword(String password) {
            this.password = password;
        }
        public String getEmail() {
            return this.email;
        }

        public void setEmail(String email) {
            this.email = email;
        }
        public String getPhone() {
            return this.phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }
        public Integer getGroupId() {
            return this.groupId;
        }

        public void setGroupId(Integer groupId) {
            this.groupId = groupId;
        }


}
EN

回答 3

Stack Overflow用户

发布于 2009-11-19 14:41:30

在hibernate配置文件中,您忽略了hbm file.you的映射元素,应该像在hibernate.cfg.xml中那样定义。

票数 1
EN

Stack Overflow用户

发布于 2016-11-30 09:32:35

我认为您必须在hibernate cfg中为您的Tbluser.hbm.xml添加映射。

代码语言:javascript
运行
复制
 <?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/hibernate</property>
        <property name="hibernate.connection.username">root</property>

  <!-- List of XML mapping files -->
   <mapping resource="Tbluser.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
票数 1
EN

Stack Overflow用户

发布于 2009-10-24 20:13:45

听起来xml解析器试图访问配置文件中提到的模式或dtd,但没有成功。

确保您的应用程序能够访问http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd,或者从那里获取文档,将其放在应用程序可以访问它的地方,相应地添加更改文档中的路径

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1618925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档