Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    52

    Hibernate - Initial SessionFactory creation failed.org.hibernate.MappingNotFoundExcep

    Ciao, qualcuno di voi mi saprebbe dire questa eccezione da cos'è causata?

    A quanto ho capito nel file hibernate.hbm.xml non sarebbe mappata la classe:

    Codice PHP:
    <hibernate-mapping>
      <class 
    name="Utenti" table="utenti"/>
    </
    hibernate-mapping
    Utenti sarebbe l'oggetto hibernate e utenti la tabella.

  2. #2
    hai creato il file xml di mapping della classe Utenti?

    edit: dal codice che hai postato presumo di sì. Hai indicato il file di mapping nel file di configurazione? Qualcosa del genere (adattalo al tuo file xml di mapping):

    [php]
    <session-factory>
    .
    .
    .
    <mapping resource="hibernate.hbm.xml"/>
    .
    .
    .
    </session-factory>
    [/php

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    52
    il problema che già c'è. Nell'hibernate.cfg.xml è già mappato hibernate.hbm.xml...

  4. #4
    Dove sono collocati i file?

    I file di hibernate hanno una struttura simile a questa?

    hibernate.cfg.xml
    codice:
    <?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">user</property>
        <property name="hibernate.connection.password">pass</property>
        <property name="current_session_context_class">thread</property>
        <mapping class="" file="hibernate.hbm.xml" jar="" package="" resource="hibernate.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
    hibernate.hbm.xml
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping>
        <class name="data.Person" table="Person">
            <id name="id" column="id">
                <generator class="native"/>
            </id>
    
            <property name="firstname" type="text" column="firstname"/>
            <property name="lastname" type="text" column="lastname"/>
        </class>
    </hibernate-mapping>

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    52
    yes... guarda ti posto tutto il codice:

    hibernate.hbm.xml:
    Codice PHP:
    <hibernate-mapping>
      <class 
    name="Utenti" table="utenti"/>
    </
    hibernate-mapping
    hibernate.revenge.xml:
    Codice PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
    <hibernate-reverse-engineering>
      <schema-selection match-catalog="mioDB"/>
      <table-filter match-name="utenti"/>
    </hibernate-reverse-engineering>
    hibernate.cfg.xml:
    Codice PHP:
    <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/mioDB</property>
        
    <property name="hibernate.connection.username">root</property>
        <
    property name="hibernate.connection.password">root</property>
        <
    mapping resource="hibernate/Utenti.hbm.xml"/>
        <
    mapping resource="hibernate/hibernate.hbm.xml"/>
      </
    session-factory>
    </
    hibernate-configuration

    ovviamente utenti.hbm.xml è l'oggetto che rappresenta la tabella utenti. Al livello di codice ho semplicemente fatto una query :


    mi sono fatto un UtentiHome:
    Codice PHP:
    package dao;

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

    public class 
    UtentiHome {
        private static final 
    SessionFactory sessionFactory;

        static {
            try {
                
    sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (
    Throwable ex) {
                
    System.err.println("Initial SessionFactory creation failed." ex);
                throw new 
    ExceptionInInitializerError(ex);
            }
        }

        public static 
    SessionFactory getSessionFactory() {
            return 
    sessionFactory;
        }


    e un UtentiBusiness:

    Codice PHP:
    public class UtentiBusiness extends UtentiHome{

        public static List<
    UtentilistaUtenti() throws IllegalStateExceptionSystemExceptionRollbackExceptionHeuristicMixedExceptionHeuristicRollbackException{
            List<
    Utentielenco null;
            
    Session session UtentiHome.getSessionFactory().openSession();

            try {
                
    org.hibernate.Transaction tx session.beginTransaction();
                
    Query q session.createQuery("from utenti");
                
    elenco q.list();
                
    tx.commit();
            }
            catch(
    RuntimeException error){
                
    error.printStackTrace();
            }
            return 
    elenco;
        }

    l'eccezione che ora mi da è la seguente:

    Codice PHP:
    java.lang.NoClassDefFoundErrorCould not initialize class business.UtentiBusiness
            at servlet
    .Login.processRequest(Login.java:44)
            
    at servlet.Login.doGet(Login.java:73)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
            
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
            
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
            
    at java.lang.Thread.run(Thread.java:619

    che poi mica istanzio UtentiBusiness visto che il metodo è dichiarato statico.


    anzi questa era una vecchia eccezione, la nuova è:

    Codice PHP:
    GRAVEServlet.service() for servlet Login threw exception
    org
    .xml.sax.SAXParseExceptionThe content of element type "class" is incompleteit must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)".
            
    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.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
            
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:791)
            
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
            
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2740)
            
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
            
    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:508)
            
    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)
            
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
            
    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 dao.UtentiHome.<clinit>(UtentiHome.java:11)
            
    at servlet.Login.processRequest(Login.java:44)
            
    at servlet.Login.doGet(Login.java:73)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
            
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
            
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
            
    at java.lang.Thread.run(Thread.java:619

  6. #6
    Hai il file hibernate.hbm.xml dove mappi la classe Utenti (appartenente al package default).

    Nel file di configurazione vedo questa linea:

    codice:
    <mapping resource="hibernate/Utenti.hbm.xml"/>
    hai un file xml del genere?

    Puoi postare il codice di Utenti.java e Utenti.hbm.xml? Sicuro che Utenti non appartenga al package dao?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    52
    Utenti.hbm.xml è praticamente il file xml che rappresenta la tabella utenti

    Codice PHP:
    <hibernate-mapping>
        <class 
    name="hibernate.Utenti" table="utenti" catalog="nift">
            <
    id name="idUtente" type="java.lang.Integer">
                <
    column name="idUtente" />
                <
    generator class="identity" />
            </
    id>
            <
    property name="nickname" type="string">
                <
    column name="nickname" not-null="true" />
            </
    property>
            <
    property name="password" type="string">
                <
    column name="password" not-null="true" />
            </
    property>
            <
    property name="nome" type="string">
                <
    column name="nome" />
            </
    property>
            <
    property name="cognome" type="string">
                <
    column name="cognome" />
            </
    property>
            <
    property name="email" type="string">
                <
    column name="email" />
            </
    property>
        </class>
    </
    hibernate-mapping
    Utenti è sempre un oggetto rappresentante la tabella utenti

    Codice PHP:
    public class Utenti  implements java.io.Serializable {


         private 
    Integer idUtente;
         private 
    String nickname;
         private 
    String password;
         private 
    String nome;
         private 
    String cognome;
         private 
    String email;

        public 
    Utenti() {
        }

        
        public 
    Utenti(String nicknameString passwordDate dataDiNascita) {
            
    this.nickname nickname;
            
    this.password password;
            
    this.dataDiNascita dataDiNascita;
        }
        public 
    Utenti(String nicknameString passwordString nomeString cognomeString email) {
           
    this.nickname nickname;
           
    this.password password;
           
    this.nome nome;
           
    this.cognome cognome;
           
    this.email email;


    //con i relativi metodi getter e setter 

  8. #8
    Per ora non ci vedo niente di strano.
    Ma hibernate.hbm.xml a che ti serve se mappi Utenti in un file xml a parte?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    52
    ok tolta...e in hibernate.cfg ho mappato soltanto utenti. ora l'eccezione è:

    Codice PHP:
    org.hibernate.hql.ast.QuerySyntaxExceptionutenti is not mapped [from utenti]
            
    at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
            
    at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
            
    at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
            
    at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
            
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
            
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
            
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
            
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
            
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
            
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
            
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
            
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
            
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
            
    at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
            
    at business.UtentiBusiness.listaUtenti(UtentiBusiness.java:22)
            
    at servlet.Login.processRequest(Login.java:44)
            
    at servlet.Login.doGet(Login.java:73)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
            
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
            
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
            
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
            
    at java.lang.Thread.run(Thread.java:619

    ma io utenti l'ho mappataO_O

  10. #10
    L'HQL dovrebbe prevedere il nome della classe non la tabella. Prova

    codice:
    Query q = session.createQuery("from hibernate.Utenti");
    dovrebbe andare anche senza specificare il package comunque.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.