- This topic has 6 replies, 2 voices, and was last updated 18 years, 6 months ago by
Haris Peco.
-
AuthorPosts
-
mrchocoboMemberI’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)
Haris PecoMembermrchocobo ,
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,
mrchocoboMemberWell, 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”><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>
mrchocoboMemberThat’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 🙁
mrchocoboMemberThis 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 🙁
mrchocoboMemberOK, 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 😐
Haris PecoMembermrchocobo,
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 editorWhat is jdk, eclipse and MyEclipse version ?
I think that your problem isn’t comment.It can be some threading problem in application server.
Regards,
-
AuthorPosts