I have an appfuse Spring MVC project and I would like to use OpenXava to create a backoffice for it. All my code is in a (maven based) Eclipse project and I want to keep it that way.
I would like to create a seperate Eclipse project that contains my openxava project backoffice. This would mean I would have to be able to point openXava to the location of my jpa model in the base project.
How would you recommend I proceed?
Cheers,
Marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I would have to be able to point openXava to the location of my jpa model in the base project.
A way can be just creating a new OpenXava project, and put a .jar with your jpa model in the WEB-INF/lib of your OX project.
If you work with Eclipse WTP you have another option: declare your original project as dependent of your new OX project using "Java EE Module Dependencies".
OpenXava only needs to find the JPA model classes in the classpath.
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> So OX finds the classes when I enter the reference in the hibernate.cfg.xml file?
No exactly. OX simply asks to hibernate for the JPA entities. Look the code of method obtainManagedClassNamesUsingHibernate() at OpenXava/java5-src/org.openxava.annotations.parser.AnnotatedClassParser.
BTW, JPA does not need hibernate.cfg.xml.
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, so I've set up my project. Copied all the necessary libraries for my 'to be openxava'd project' into the lib directory. My model is in one of those libraries under nl.mycompany.myproject.model
How do I tell OpenXava to look there for those model classes?
If it isn't through the hibernate.cfg.xml file, then how?
Also noticed something strange. OpenXavaDS is not defined in the context.xml for Tomcat even though it's referenced in the openxava-hibernate.cfg.xml file.
Kind regards,
Marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> How do I tell OpenXava to look there for those model classes?
OpenXava asks to Hibernate, just in this way:
org.hibernate.impl.SessionImpl impl = (org.hibernate.impl.SessionImpl) manager.getDelegate();
Collection result = impl.getSessionFactory().getAllClassMetadata().keySet();
> If it isn't through the hibernate.cfg.xml file, then how?
Using JPA you only need to annotate you model class with @Entity, you do not need hibernate.cfg.xml.
As you see in the above code hibernate needs a session (hence a database conection) in order to obtain metadata. I think you have a problem connecting to database.
Put here the full stacktrace and I'll give you a better tip.
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
[MercadoTotal-BO] ERROR [http-8080-Processor24] ComponentParser.parseAnnotatedClass(57) | Seems that Offer is not an EJB3 Entity nor transient model class
org.openxava.util.XavaException: Seems that Offer is not an EJB3 Entity nor transient model class
at org.openxava.annotations.parse.AnnotatedClassParser.getClassNameFor(AnnotatedClassParser.java:2004)
at org.openxava.annotations.parse.AnnotatedClassParser.parse(AnnotatedClassParser.java:50)
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 org.openxava.util.Objects.execute(Objects.java:193)
at org.openxava.util.Objects.execute(Objects.java:112)
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:54)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.view.View.getMetaModel(View.java:246)
at org.openxava.view.View.getMetaView(View.java:227)
at org.openxava.view.View.createMetaMembers(View.java:142)
at org.openxava.view.View.getMetaMembers(View.java:121)
at org.openxava.view.View.getFirsEditablePropertyId(View.java:3137)
at org.openxava.view.View.calculateFocusPropertyId(View.java:3115)
at org.openxava.view.View.getFocusPropertyId(View.java:3101)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:559)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] WARN [http-8080-Processor24] View.getFocusPropertyId(3104) | WARNING!: Unable to determine focus position
org.openxava.util.XavaException: Impossible to parse the annotated EJB3 Offer
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:58)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.view.View.getMetaModel(View.java:246)
at org.openxava.view.View.getMetaView(View.java:227)
at org.openxava.view.View.createMetaMembers(View.java:142)
at org.openxava.view.View.getMetaMembers(View.java:121)
at org.openxava.view.View.getFirsEditablePropertyId(View.java:3137)
at org.openxava.view.View.calculateFocusPropertyId(View.java:3115)
at org.openxava.view.View.getFocusPropertyId(View.java:3101)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:559)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] WARN [http-8080-Processor24] Labels.get(41) | Impossible to translate element with id Offer
[MercadoTotal-BO] ERROR [http-8080-Processor24] ComponentParser.parseAnnotatedClass(57) | Seems that Offer is not an EJB3 Entity nor transient model class
org.openxava.util.XavaException: Seems that Offer is not an EJB3 Entity nor transient model class
at org.openxava.annotations.parse.AnnotatedClassParser.getClassNameFor(AnnotatedClassParser.java:2004)
at org.openxava.annotations.parse.AnnotatedClassParser.parse(AnnotatedClassParser.java:50)
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 org.openxava.util.Objects.execute(Objects.java:193)
at org.openxava.util.Objects.execute(Objects.java:112)
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:54)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.tab.Tab.getMetaTab(Tab.java:189)
at org.openxava.tab.Tab.getMetaProperties(Tab.java:90)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:251)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] Tab.getMetaProperties(93) | WARNING! Impossible to obtain MetaProperties from tab
org.openxava.util.XavaException: Impossible to parse the annotated EJB3 Offer
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:58)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.tab.Tab.getMetaTab(Tab.java:189)
at org.openxava.tab.Tab.getMetaProperties(Tab.java:90)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:251)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] [jsp].invoke(723) | Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:252)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] [jsp].invoke(250) | Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:252)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
This is my context
<Resource name="jdbc/MercadoSA-backofficeDS" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="root" password="" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/MercadoTotal"/>
Go to the AnnotatedClassParser of OX, edit the obtainManagedClassNamesUsingHibernate, and:
1. Log the result, in order to know which entities are returned by Hibernate.
2. Comment this line: Logger.getLogger("org.hibernate").setLevel(Level.OFF); in order to obtain more stacktrace.
Put here the new stacktrace and the logged result.
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Keep in mind that I have my model in a seperate jar. I don't really see any way for hibernate to know about it. But perhaps this is my ignorance with hibernate. Having said that, adding the mapping references to hibernate.cfg.xml or openxava-hibernate.cfg.xml doesnt help.
Cheers,
Marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> Keep in mind that I have my model in a seperate jar.
No matter if it is in a jar or not.
Anyways you can try it out. Put in the source code of your new OpenXava application the simplest entity of your existing application.
BTW, did you try your OpenXava application with a simple entity written from scratch ?
That is, is your OX application working well ?
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I added one of the JPA entity classes to a directory directly in the classes directory (in stead of the jar file). Now it works. So, openxava/hibernate by default expects it's jpa classes to be in the classes directly. Any idea how to point it to the jar file?
It would seem, I would need to tell the hibernate session which mapping files it needs, which normally is done by adding the mapping references to the hibernate.cfg.xml file. Like I said before, I tried this before. Ddin't work.
Any ideas?
Cheers,
Marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> So, openxava/hibernate by default expects it's jpa classes to be in the classes directly
Ok. You're right!
I tried you case: I created an entity, wrap it in a jar, put the jar in my WEB-INF/lib and OX did not recognize it, just as in your case.
Ok. Done. Hope you get around to it soon. Should not be too hard. If you pick up on mapping references specified in either hibernate or ox-hibernate, it should work.
Cheers,
Marc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I just revised your issue about entities inside jars, and it is not an OpenXava bug, but is the way as JPA look for entities. If you want to have the entities inside a jar you have 2 options:
1. Use <jar-file> inside persistence.xml, but in this case you have to use an absolute path it you work with Tomcat, because Tomcat is not a EJB3 container:
<persistence-unit name="default">
<jar-file>/home/javi/workspace/OpenXavaTest/web/WEB-INF/lib/my-model.jar</jar-file>
....
2. Move META-INF/persistence.xml from your project to your .jar. And remove the persistence folder of your project as source folder.
You can learn more reading JPA doc about persistence.xml, the use of .jar, etc.
Cheers
Javi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I have an appfuse Spring MVC project and I would like to use OpenXava to create a backoffice for it. All my code is in a (maven based) Eclipse project and I want to keep it that way.
I would like to create a seperate Eclipse project that contains my openxava project backoffice. This would mean I would have to be able to point openXava to the location of my jpa model in the base project.
How would you recommend I proceed?
Cheers,
Marc
Hi Marc,
> I would have to be able to point openXava to the location of my jpa model in the base project.
A way can be just creating a new OpenXava project, and put a .jar with your jpa model in the WEB-INF/lib of your OX project.
If you work with Eclipse WTP you have another option: declare your original project as dependent of your new OX project using "Java EE Module Dependencies".
OpenXava only needs to find the JPA model classes in the classpath.
Cheers
Javi
Ok, sound good. So OX finds the classes when I enter the reference in the hibernate.cfg.xml file?
I'll try it out.
Cheers,
Marc
Hi Marc,
> So OX finds the classes when I enter the reference in the hibernate.cfg.xml file?
No exactly. OX simply asks to hibernate for the JPA entities. Look the code of method obtainManagedClassNamesUsingHibernate() at OpenXava/java5-src/org.openxava.annotations.parser.AnnotatedClassParser.
BTW, JPA does not need hibernate.cfg.xml.
Cheers
Javi
Ok, so I've set up my project. Copied all the necessary libraries for my 'to be openxava'd project' into the lib directory. My model is in one of those libraries under nl.mycompany.myproject.model
I get the model not found when I try to access through
http://localhost:8080/myproject/xava/module.jsp?application=myproject&module=City
http://localhost:8080/myproject/xava/module.jsp?application=myproject&module=nl.mycompany.myproject.model.City
How do I tell OpenXava to look there for those model classes?
If it isn't through the hibernate.cfg.xml file, then how?
Also noticed something strange. OpenXavaDS is not defined in the context.xml for Tomcat even though it's referenced in the openxava-hibernate.cfg.xml file.
Kind regards,
Marc
Hi Marc,
> How do I tell OpenXava to look there for those model classes?
OpenXava asks to Hibernate, just in this way:
org.hibernate.impl.SessionImpl impl = (org.hibernate.impl.SessionImpl) manager.getDelegate();
Collection result = impl.getSessionFactory().getAllClassMetadata().keySet();
> If it isn't through the hibernate.cfg.xml file, then how?
Using JPA you only need to annotate you model class with @Entity, you do not need hibernate.cfg.xml.
As you see in the above code hibernate needs a session (hence a database conection) in order to obtain metadata. I think you have a problem connecting to database.
Put here the full stacktrace and I'll give you a better tip.
Cheers
Javi
Hi,
Ok, I get this stacktrace on http://localhost:8080/MercadoSA-backoffice/xava/module.jsp?application=MercadoSA-backoffice&module=Offer (sorry about the verbosity):
[MercadoTotal-BO] ERROR [http-8080-Processor24] ComponentParser.parseAnnotatedClass(57) | Seems that Offer is not an EJB3 Entity nor transient model class
org.openxava.util.XavaException: Seems that Offer is not an EJB3 Entity nor transient model class
at org.openxava.annotations.parse.AnnotatedClassParser.getClassNameFor(AnnotatedClassParser.java:2004)
at org.openxava.annotations.parse.AnnotatedClassParser.parse(AnnotatedClassParser.java:50)
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 org.openxava.util.Objects.execute(Objects.java:193)
at org.openxava.util.Objects.execute(Objects.java:112)
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:54)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.view.View.getMetaModel(View.java:246)
at org.openxava.view.View.getMetaView(View.java:227)
at org.openxava.view.View.createMetaMembers(View.java:142)
at org.openxava.view.View.getMetaMembers(View.java:121)
at org.openxava.view.View.getFirsEditablePropertyId(View.java:3137)
at org.openxava.view.View.calculateFocusPropertyId(View.java:3115)
at org.openxava.view.View.getFocusPropertyId(View.java:3101)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:559)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] WARN [http-8080-Processor24] View.getFocusPropertyId(3104) | WARNING!: Unable to determine focus position
org.openxava.util.XavaException: Impossible to parse the annotated EJB3 Offer
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:58)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.view.View.getMetaModel(View.java:246)
at org.openxava.view.View.getMetaView(View.java:227)
at org.openxava.view.View.createMetaMembers(View.java:142)
at org.openxava.view.View.getMetaMembers(View.java:121)
at org.openxava.view.View.getFirsEditablePropertyId(View.java:3137)
at org.openxava.view.View.calculateFocusPropertyId(View.java:3115)
at org.openxava.view.View.getFocusPropertyId(View.java:3101)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:559)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] WARN [http-8080-Processor24] Labels.get(41) | Impossible to translate element with id Offer
[MercadoTotal-BO] ERROR [http-8080-Processor24] ComponentParser.parseAnnotatedClass(57) | Seems that Offer is not an EJB3 Entity nor transient model class
org.openxava.util.XavaException: Seems that Offer is not an EJB3 Entity nor transient model class
at org.openxava.annotations.parse.AnnotatedClassParser.getClassNameFor(AnnotatedClassParser.java:2004)
at org.openxava.annotations.parse.AnnotatedClassParser.parse(AnnotatedClassParser.java:50)
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 org.openxava.util.Objects.execute(Objects.java:193)
at org.openxava.util.Objects.execute(Objects.java:112)
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:54)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.tab.Tab.getMetaTab(Tab.java:189)
at org.openxava.tab.Tab.getMetaProperties(Tab.java:90)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:251)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] Tab.getMetaProperties(93) | WARNING! Impossible to obtain MetaProperties from tab
org.openxava.util.XavaException: Impossible to parse the annotated EJB3 Offer
at org.openxava.component.ComponentParser.parseAnnotatedClass(ComponentParser.java:58)
at org.openxava.component.ComponentParser.parse(ComponentParser.java:34)
at org.openxava.component.MetaComponent.get(MetaComponent.java:60)
at org.openxava.tab.Tab.getMetaTab(Tab.java:189)
at org.openxava.tab.Tab.getMetaProperties(Tab.java:90)
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:251)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] [jsp].invoke(723) | Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:252)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
[MercadoTotal-BO] ERROR [http-8080-Processor24] [jsp].invoke(250) | Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.xava.list_jsp._jspService(list_jsp.java:252)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
at org.apache.jsp.xava.module_jsp._jspService(module_jsp.java:761)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
This is my context
<Resource name="jdbc/MercadoSA-backofficeDS" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="root" password="" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/MercadoTotal"/>
<Resource name="jdbc/OpenXavaDS" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="root" password="" driverClassName="org.mysqldb.jdbcDriver"
url="jdbc:mysql://localhost:3306/OpenXavaDS"/>
The Offer is in fact under nl.mycompany.mercadosa.model which is stored in a jar file.
The database is generated through hibernate in the other project and has content.
Any help is a appreciated.
The Offer class is as follows:
@Entity
@Table(name = "Offers")
@Inheritance(strategy = InheritanceType.JOINED)
@Indexed
public class Offer implements Serializable{
[...]
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "offerID", updatable = false, insertable = false)
@DocumentId
public Long getId() {
return id;
}
public void setId(Long offerId) {
this.id = offerId;
}
@Column
@Field(index = Index.TOKENIZED, store = Store.YES)
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
if (StringUtils.isEmpty(URLPath)) {
URLPath = StringUtils.replace(title, " ", "_") + ".html";
}
}
[...]
}
Cheers,
Marc
Hi Marc,
we don't see the root of the problem yet.
Go to the AnnotatedClassParser of OX, edit the obtainManagedClassNamesUsingHibernate, and:
1. Log the result, in order to know which entities are returned by Hibernate.
2. Comment this line: Logger.getLogger("org.hibernate").setLevel(Level.OFF); in order to obtain more stacktrace.
Put here the new stacktrace and the logged result.
Cheers
Javi
Keep in mind that I have my model in a seperate jar. I don't really see any way for hibernate to know about it. But perhaps this is my ignorance with hibernate. Having said that, adding the mapping references to hibernate.cfg.xml or openxava-hibernate.cfg.xml doesnt help.
Cheers,
Marc
Hi Marc,
> Keep in mind that I have my model in a seperate jar.
No matter if it is in a jar or not.
Anyways you can try it out. Put in the source code of your new OpenXava application the simplest entity of your existing application.
BTW, did you try your OpenXava application with a simple entity written from scratch ?
That is, is your OX application working well ?
Cheers
Javi
Ok,
I added one of the JPA entity classes to a directory directly in the classes directory (in stead of the jar file). Now it works. So, openxava/hibernate by default expects it's jpa classes to be in the classes directly. Any idea how to point it to the jar file?
It would seem, I would need to tell the hibernate session which mapping files it needs, which normally is done by adding the mapping references to the hibernate.cfg.xml file. Like I said before, I tried this before. Ddin't work.
Any ideas?
Cheers,
Marc
Hi Marc,
> So, openxava/hibernate by default expects it's jpa classes to be in the classes directly
Ok. You're right!
I tried you case: I created an entity, wrap it in a jar, put the jar in my WEB-INF/lib and OX did not recognize it, just as in your case.
Create an issue about this in this tracker:
http://sourceforge.net/tracker/?atid=695743&group_id=123187&func=browse
and I'll fix it.
Cheers
Javi
Ok. Done. Hope you get around to it soon. Should not be too hard. If you pick up on mapping references specified in either hibernate or ox-hibernate, it should work.
Cheers,
Marc
Hi Marc,
> Hope you get around to it soon.
I'll try to include the fix for OX3.0.4
Cheers
Javi
Hi Marc,
I just revised your issue about entities inside jars, and it is not an OpenXava bug, but is the way as JPA look for entities. If you want to have the entities inside a jar you have 2 options:
1. Use <jar-file> inside persistence.xml, but in this case you have to use an absolute path it you work with Tomcat, because Tomcat is not a EJB3 container:
<persistence-unit name="default">
<jar-file>/home/javi/workspace/OpenXavaTest/web/WEB-INF/lib/my-model.jar</jar-file>
....
2. Move META-INF/persistence.xml from your project to your .jar. And remove the persistence folder of your project as source folder.
You can learn more reading JPA doc about persistence.xml, the use of .jar, etc.
Cheers
Javi