facebook

FWK005 parse may not be called while parsing

  1. MyEclipse Archived
  2.  > 
  3. Database Tools (DB Explorer, Hibernate, etc.)
Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #262041 Reply

    mrchocobo
    Member

    I’m getting this message when trying to use the findByExample of a DAO automatically created by Hibernate Tools. From what I readed this “FWK005 parse may not be called while parsing” thing could be caused because it’s not thread safe, but i have no clue on how to solve this

    Any help would be apreciated

    %%%% Error Creating SessionFactory %%%%
    org.hibernate.MappingException: Could not read mappings from resource: es/uc3m/audiovisuales/server/Acto.hbm.xml
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:485)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
    at es.uc3m.audiovisuales.server.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:59)
    at es.uc3m.audiovisuales.server.HibernateSessionFactory.getSession(HibernateSessionFactory.java:43)
    at es.uc3m.audiovisuales.server.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)
    at es.uc3m.audiovisuales.server.FechaDAO.findByExample(FechaDAO.java:69)
    at es.uc3m.audiovisuales.server.ServicioBBDDImpl.getFechas(ServicioBBDDImpl.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:260)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:216)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.hibernate.MappingException: Could not parse mapping document in input stream
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:431)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
    … 44 more
    Caused by: org.dom4j.DocumentException: FWK005 parse may not be called while parsing. Nested exception: FWK005 parse may not be called while parsing.
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:422)
    … 45 more
    %%%% Error Creating SessionFactory %%%%
    java.lang.NullPointerException
    at org.hibernate.cfg.HbmBinder.getExtendsNeeded(HbmBinder.java:2926)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:107)
    at org.hibernate.cfg.Configuration.add(Configuration.java:386)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
    at es.uc3m.audiovisuales.server.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:59)
    at es.uc3m.audiovisuales.server.HibernateSessionFactory.getSession(HibernateSessionFactory.java:43)
    at es.uc3m.audiovisuales.server.BaseHibernateDAO.getSession(BaseHibernateDAO.java:14)
    at es.uc3m.audiovisuales.server.FechaDAO.findByExample(FechaDAO.java:69)
    at es.uc3m.audiovisuales.server.ServicioBBDDImpl.getFechas(ServicioBBDDImpl.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:260)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:216)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Unknown Source)

    #262046 Reply

    Haris Peco
    Member

    mrchocobo ,

    Hibernate can’t find Acto.hbm.xml .Check if it is in correct package (in source folder) and that you have added this mapping in hibernate.cfg.xml

    Regards,

    #262114 Reply

    mrchocobo
    Member

    Well, of course that was the first thing I checked, sorry for not saying it. All mapping files are under the package es.ucm.audiovisuales.server and this is my configuration file, which also says the mapping resources are under es/uc3m/audiovisuales/server/

    <?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”&gt;

    <hibernate-configuration>
    <session-factory>
    <!– Datos para la conexion a la base de datos –>
    <property name=”connection.driver_class”>
    com.mysql.jdbc.Driver
    </property>
    <property name=”connection.url”>
    jdbc:mysql://localhost/agenda
    </property>
    <property name=”connection.username”>root</property>
    <property name=”connection.password”></property>

    <!– Dialecto SQL que va a utilizar –>
    <property name=”dialect”>
    org.hibernate.dialect.MySQLDialect
    </property>

    <!– Activa la gestion automatica de sesiones de Hibernate –>
    <property name=”current_session_context_class”>thread</property>

    <property name=”use_outer_join”>true</property>
    <property name=”transaction.factory_class”>
    org.hibernate.transaction.JDBCTransactionFactory
    </property>

    <!– Muestra todas las consultas SQL en la salida estandar –>
    <property name=”show_sql”>true</property>

    <!– Archivos de mapping –>
    <mapping resource=”es/uc3m/audiovisuales/server/Acto.hbm.xml” />
    <mapping resource=”es/uc3m/audiovisuales/server/Aula.hbm.xml” />
    <mapping resource=”es/uc3m/audiovisuales/server/Fecha.hbm.xml” />
    <mapping
    resource=”es/uc3m/audiovisuales/server/Categoria.hbm.xml” />
    <mapping
    resource=”es/uc3m/audiovisuales/server/ActoCategorias.hbm.xml” />
    <mapping
    resource=”es/uc3m/audiovisuales/server/ActoAulaFecha.hbm.xml” />
    </session-factory>
    </hibernate-configuration>

    #262115 Reply

    mrchocobo
    Member

    That’s why I think the fact it can’t read from the mapping file is not because it couldn’t find it, but because of something related, for some reason, with the SAXReader.

    So I don’t have a clue on what is causing this. I bet it’s an stupid thing but it’s getting on my nerves 🙁

    #262116 Reply

    mrchocobo
    Member

    This is the HibernateSessionFactory:

    
     package es.uc3m.audiovisuales.server;
    
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.cfg.Configuration;
    
    /**
     * Configures and provides access to Hibernate sessions, tied to the current
     * thread of execution. Follows the Thread Local Session pattern, see
     * {@link http://hibernate.org/42.html }.
     */
    public class HibernateSessionFactory {
    
        /**
         * Location of hibernate.cfg.xml file. Location should be on the classpath
         * as Hibernate uses #resourceAsStream style lookup for its configuration
         * file. The default classpath location of the hibernate config file is in
         * the default package. Use #setConfigFile() to update the location of the
         * configuration file for the current session.
         */
        private static String CONFIG_FILE_LOCATION = "/es/uc3m/audiovisuales/server/hibernate.cfg.xml";
    
        private static final ThreadLocal threadLocal = new ThreadLocal();
    
        private static Configuration configuration = new Configuration();
    
        private static org.hibernate.SessionFactory sessionFactory;
    
        private static String configFile = CONFIG_FILE_LOCATION;
    
        private HibernateSessionFactory() {
        }
    
        /**
         * Returns the ThreadLocal Session instance. Lazy initialize the
         * <code>SessionFactory</code> if needed.
         * 
         * @return Session
         * @throws HibernateException
         */
        public static Session getSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
    
            if (session == null || !session.isOpen()) {
                if (sessionFactory == null) {
                    rebuildSessionFactory();
                }
                session = (sessionFactory != null) ? sessionFactory.openSession()
                        : null;
                threadLocal.set(session);
            }
    
            return session;
        }
    
        /**
         * Rebuild hibernate session factory
         * 
         */
        public static void rebuildSessionFactory() {
            try {
                configuration.configure(configFile);
                sessionFactory = configuration.buildSessionFactory();
            } catch (Exception e) {
                System.err.println("%%%% Error Creating SessionFactory %%%%");
                e.printStackTrace();
            }
        }
    
        /**
         * Close the single hibernate session instance.
         * 
         * @throws HibernateException
         */
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);
    
            if (session != null) {
                session.close();
            }
        }
    
        /**
         * return session factory
         * 
         */
        public static org.hibernate.SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    
        /**
         * return session factory
         * 
         * session factory will be rebuilded in the next call
         */
        public static void setConfigFile(String configFile) {
            HibernateSessionFactory.configFile = configFile;
            sessionFactory = null;
        }
    
        /**
         * return hibernate configuration
         * 
         */
        public static Configuration getConfiguration() {
            return configuration;
        }
    
    }
    

    Maybe it has something to do with using thread-local variables?
    I don’t know, I’m just saying the first thing that come into my mind. I really don’t know hot to solve this, so any help would be greatly appreciated 🙁

    #262118 Reply

    mrchocobo
    Member

    OK, I found the reason. It was the comment at the beginning of the file:
    <!–Mapping file autogenerated by MyEclipse – Hibernate Tools–>

    The parser didn’t seem to like that one for some reason 😐

    #262138 Reply

    Haris Peco
    Member

    mrchocobo,

    This is error from some strange parser.
    I suppose that you have configured some specific parser.How you call your application ?

    – standalone application in java/hibernate project (I suggest that always try this)
    – in some application server (is yes, what apps server)
    or
    – hql editor

    What is jdk, eclipse and MyEclipse version ?

    I think that your problem isn’t comment.It can be some threading problem in application server.

    Regards,

Viewing 7 posts - 1 through 7 (of 7 total)
Reply To: FWK005 parse may not be called while parsing

You must be logged in to post in the forum log in