2017-05-18 2 views
0

Dies ist meine erste Anwendung mit Hibernate, in diesem Programm habe ich eine JSP-Datei, während klicken Sie auf Senden Schaltfläche seinen Aufruf SaveServlet.java, und es erhalten die Werte aus dem Textfeld, aber während das Projekt ausgeführt wird Fehler, jemand bitte hilf mir.Hibernate, XML-Mapping-Problem

ERROR: HHH000196: Error parsing XML (40) : Element type "hibernate-mapping" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "default-cascade" must be declared for element type "hibernate-mapping". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "default-access" must be declared for element type "hibernate-mapping". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "default-lazy" must be declared for element type "hibernate-mapping". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "auto-import" must be declared for element type "hibernate-mapping". 
ERROR: HHH000196: Error parsing XML (40) : Element type "class" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "table" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "mutable" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "polymorphism" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "dynamic-update" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "dynamic-insert" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "select-before-update" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "class". 
ERROR: HHH000196: Error parsing XML (40) : Element type "id" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "id". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "id". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "id". 
ERROR: HHH000196: Error parsing XML (40) : Element type "generator" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "class" must be declared for element type "generator". 
ERROR: HHH000196: Error parsing XML (40) : Element type "property" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "unique" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "lazy" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "generated" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Element type "property" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "unique" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "lazy" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "generated" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Element type "property" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "unique" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "lazy" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "generated" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Element type "property" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "unique" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "lazy" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "generated" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Element type "property" must be declared. 
ERROR: HHH000196: Error parsing XML (40) : Attribute "name" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "column" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "type" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "unique" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "optimistic-lock" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "lazy" must be declared for element type "property". 
ERROR: HHH000196: Error parsing XML (40) : Attribute "generated" must be declared for element type "property". 
" Error in SaveServlet org.hibernate.InvalidMappingException: Unable to read XML" 

persistente Klasse User.java

import com.hiber.Bean 
public class User { 
    private int id; 
    private String username,password,email,phone,city; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getUsername() { 
     return username; 
    } 

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

    public String getPassword() { 
     return password; 
    } 

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

    public String getEmail() { 
     return email; 
    } 

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

    public String getPhone() { 
     return phone; 
    } 

    public void setPhone(String phone) { 
     this.phone = phone; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 
} 

und diese Zuordnungsdatei user.hbm

<hibernate-mapping> 
    <class name="User" table="user"> 
     <id name="id" column="id" type="integer"> 
      <generator class="assigned"></generator> 
     </id> 
     <property name="username" column="username" type="java.lang.String"></property> 
     <property name="password" column="password" type="java.lang.String"></property> 
     <property name="email" column="email" type="java.lang.String"></property> 
     <property name="phone" column="phone" type="java.lang.String"></property> 
     <property name="city" column="city" type="java.lang.String"></property> 
    </class> 
</hibernate-mapping> 

diese Konfigurationsdatei hibernate.cfg.xml

<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/brinkle?zeroDateTimeBehavior=convertToNull</property> 
    <property name="hibernate.connection.username">root</property> 
    <mapping resource="com/hiber/Bean/User.xml"/> 
    </session-factory> 
</hibernate-configuration> 

Dao Klassendatei UserDao.java

package com.hiber.Dao 

public class UserDao { 
    Session session=NewHibernateUtil.getSessionFactory().openSession(); 

     Transaction tran=session.beginTransaction(); 
     public void addUser(String username,String password,String email,String phone,String city) 
     { 
     User user=new User(); 


     user.setUsername(username); 
     user.setPassword(password); 
     user.setEmail(email); 
     user.setPhone(phone); 
     user.setCity(city); 

     session.save(user); 
     tran.commit(); 

     System.out.println("saved succesfully"); 

} 
} 

HibernateUtil.java

public class NewHibernateUtil { 

    private static SessionFactory sessionFactory; 

     public static SessionFactory getSessionFactory() 
    { 
     if (sessionFactory == null) { 
      // loads configuration and mappings 
      Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); 
      ServiceRegistry serviceRegistry 
       = new StandardServiceRegistryBuilder() 
        .applySettings(configuration.getProperties()).build(); 

      // builds a session factory from the service registry 
      sessionFactory = configuration.buildSessionFactory(serviceRegistry);   
     } 
     else 
     { 
      System.out.println("Session not created.........."); 
     } 

     return sessionFactory; 

} 
} 

das ist mein Servlet SaveServlet.java

package com.hiber.Controller; 
    import com.hiber.dao.*; 

    import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.RequestDispatcher; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
    import org.hibernate.HibernateException; 


    public class SaveServlet extends HttpServlet { 
    @Override 
     protected void doPost(HttpServletRequest request, HttpServletResponse response) 
       throws ServletException, IOException { 
      String username=request.getParameter("username"); 
      String password =request.getParameter("password"); 
      String email=request.getParameter("email"); 
      String phone=request.getParameter("phone"); 
      String city =request.getParameter("city"); 
      System.out.println("the name is "+username+"pass is "+password+" emial is "+email +" phone is "+phone +" and city is "+city); 
      try 
      { 
    //   System.out.println("here we go"); 
       UserDao ud=new UserDao(); 
       ud.addUser(username, password, email, phone, city); 
       RequestDispatcher rd=request.getRequestDispatcher("welcomeJSF.jsp"); 
       rd.forward(request, response); 
      // response.sendRedirect("welcomeJSF.jsp"); 
      } 
      catch(HibernateException e) 
      { 
       System.out.println("Error in SaveServlet "+e); 
      } 
     } 
    } 
+0

Haben Sie die ersten Zeilen in den Dateien '.cfg.xml' und' hbm.xml' weggelassen, oder ist das alles, was Sie haben? –

+0

Diese Zeilen? – Brinklesujin

+0

Ja, können Sie Ihre Frage mit dem vollständigen Code aktualisieren, den Sie verwenden? Diese Header sind wichtig. –

Antwort

0

Setzen Sie dieses in der Kopfzeile des hbm.xml:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

Und Setze dies in den Header der 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"> 
+0

fügte hinzu und machte einige andere Änderungen auch, jetzt bekam ich "Fehler in SaveServlet org.hibernate.HibernateException: konnte Konfiguration nicht abfrieren: hibernate.cfg.xml" nur diesen Fehler – Brinklesujin

0

User.hbm.xml

<?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 May 18, 2017 3:31:25 PM by Hibernate Tools 3.4.0.CR1 --> 
    <hibernate-mapping> 
     <class name="com.hiber.Bean.User" table="USERData"> 
      <id name="id" type="int"> 
       <column name="ID" /> 
       <generator class="increment" /> 
      </id> 
      <property name="username" type="java.lang.String"> 
       <column name="USERNAME" /> 
      </property> 
      <property name="password" type="java.lang.String"> 
       <column name="PASSWORD" /> 
      </property> 
      <property name="email" type="java.lang.String"> 
       <column name="EMAIL" /> 
      </property> 
      <property name="phone" type="java.lang.String"> 
       <column name="PHONE" /> 
      </property> 
      <property name="city" type="java.lang.String"> 
       <column name="CITY" /> 
      </property> 
     </class> 
    </hibernate-mapping> 

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.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.password">password</property> 
     <property name="hibernate.connection.url">jdbc:mysql://<host><:port>/<database></property> 
     <property name="hibernate.connection.username">username</property> 
     <property name="hibernate.default_schema">databasename</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="hbm2ddl.auto">update</property> 
      <mapping resource="com/hiber/Bean/User.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

SaveServlet.java

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     String username=request.getParameter("username"); 
     String password =request.getParameter("password"); 
     String email=request.getParameter("email"); 
     String phone=request.getParameter("phone"); 
     String city =request.getParameter("city"); 
     System.out.println("the name is "+username+"pass is "+password+" emial is "+email +" phone is "+phone +" and city is "+city); 
     try 
     { 
//   System.out.println("here we go"); 
      UserDao ud=new UserDao(); 
     ud.get(); 
      ud.addUser(username, password, email, phone, city); 
     response.sendRedirect("welcomeJSF.jsp"); 
     } 
     catch(HibernateException e) 
     { 
      System.out.println("Error in SaveServlet "+e); 
     } 

UserDao.java

package com.hiber.Bean; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.Configuration; 

public class UserDao { 
    Session session; 
    Transaction tran; 
    public void get(){ 
    Configuration c=new Configuration(); 
    c.configure("hibernate.cfg.xml"); 
    SessionFactory se=c.buildSessionFactory(); 
    session=se.openSession(); 
     tran=session.beginTransaction(); 

    } 
     public void addUser(String username,String password,String email,String phone,String city) 
     { 
     User user=new User(); 


     user.setUsername(username); 
     user.setPassword(password); 
     user.setEmail(email); 
     user.setPhone(phone); 
     user.setCity(city); 

     session.save(user); 
     tran.commit(); 

     System.out.println("saved succesfully"); 

} 
     } 
+0

Vielen Dank dafür, während ich diesen Code ausführen, habe ich einen Fehler wie 'Fehler in SaveServlet org.hibernate.HibernateException: konnte Konfiguration nicht syntaktisch: Hibernate.cfg.xml' – Brinklesujin