- This topic has 6 replies, 2 voices, and was last updated 18 years, 8 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)November 16, 2006 at 11:00 am #262046
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,
November 17, 2006 at 2:21 am #262114
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>November 17, 2006 at 2:30 am #262115
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 🙁
November 17, 2006 at 2:35 am #262116
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 🙁November 17, 2006 at 3:11 am #262118
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 😐
November 17, 2006 at 9:52 am #262138
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