Menu

How to 'openXava' an external project

2008-07-06
2012-11-26
  • Marc Schipperheyn

    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

     
    • Javier Paniza

      Javier Paniza - 2008-07-07

      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

       
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-09

        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

         
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-14

        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

         
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-15

        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

         
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-15

        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

         
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-17

        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

         
    • Marc Schipperheyn

      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

       
      • Javier Paniza

        Javier Paniza - 2008-07-18

        Hi Marc,

        > Hope you get around to it soon.
        I'll try to include the fix for OX3.0.4

        Cheers
        Javi

         
    • Javier Paniza

      Javier Paniza - 2008-07-28

      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

       

Log in to post a comment.