Menu

Error al utilizar @ManyToMany

Nora
2024-08-06
2024-08-14
  • Nora

    Nora - 2024-08-06

    Hola, soy nueva programando y estoy intentando trabajar con dos clases: Visita y Estudio. Cada Visita debe tener una colección de Estudios realizados. Pasa que cuando intento utilizar @ManyToMany, recibo un error y no entiendo por qué. Es específicamente con esta relación, ya que @OneToOne, @OneToMany y @ManyToOne funcionan perfectamente.

    El error sucede cuando entro al tab de Visita, sin embargo, el tab de Estudio funciona perfectamente (puedo ver, agregar y modificar estudios). Borré las tablas implicadas suponiendo que era un problema de la base de datos, también actualicé a la última versión de OpenXava, pero el problema persiste. Acá dejo las clases, la traza y una foto del navegador cuando sucede. Gracias de antemano si alguien puede ayudarme y decirme qué puedo modificar de una forma detallada porque aún no sé mucho :).

    Traza

    ago. 05, 2024 7:34:01 P.M. org.openxava.model.meta.MetaModel fillPOJO
    SEVERE: argument type mismatch
    java.lang.IllegalArgumentException: argument type mismatch
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.openxava.util.PropertiesManager.executeSet(PropertiesManager.java:161)
        at org.openxava.model.meta.MetaModel.fillPOJO(MetaModel.java:1519)
        at org.openxava.view.View.getCollectionValues(View.java:1839)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    ago. 05, 2024 7:34:01 P.M. org.openxava.view.View getCollectionValues
    SEVERE: Error al convertir mapa de valores en un POJO de tipo Visita
    org.openxava.util.XavaException: Error al convertir mapa de valores en un POJO de tipo Visita
        at org.openxava.model.meta.MetaModel.fillPOJO(MetaModel.java:1542)
        at org.openxava.view.View.getCollectionValues(View.java:1839)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    ago. 05, 2024 7:34:01 P.M. org.apache.catalina.core.ApplicationDispatcher invoke
    SEVERE: Servlet.service() for servlet [jsp] threw exception
    org.openxava.util.XavaException: Errores al obtener la colección de estudios
        at org.openxava.view.View.getCollectionValues(View.java:1850)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    ago. 05, 2024 7:34:01 P.M. org.apache.catalina.core.ApplicationDispatcher invoke
    SEVERE: Servlet.service() for servlet [jsp] threw exception
    org.openxava.util.XavaException: Errores al obtener la colección de estudios
        at org.openxava.view.View.getCollectionValues(View.java:1850)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    ago. 05, 2024 7:34:01 P.M. org.apache.catalina.core.ApplicationDispatcher invoke
    SEVERE: Servlet.service() for servlet [jsp] threw exception
    org.openxava.util.XavaException: Errores al obtener la colección de estudios
        at org.openxava.view.View.getCollectionValues(View.java:1850)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    
    ago. 05, 2024 7:34:01 P.M. org.openxava.web.dwr.DWRBase request
    SEVERE: An exception occurred processing [/xava/detail.jsp] at line [248]
    
    245:                String colletionHeaderId = frameId + "header";
    246: %>             
    247:                <span id="<xava:id name='<%=colletionHeaderId%>'/>">
    248:                    <jsp:include page="collectionFrameHeader.jsp"> 
    249:                        <jsp:param name="collectionName" value="<%=collection.getName()%>"/>
    250:                        <jsp:param name="viewObject" value="<%=viewObject%>"/>          
    251:                    </jsp:include>          
    
    
    Stacktrace:
    org.apache.jasper.JasperException: An exception occurred processing [/xava/detail.jsp] at line [248]
    
    245:                String colletionHeaderId = frameId + "header";
    246: %>             
    247:                <span id="<xava:id name='<%=colletionHeaderId%>'/>">
    248:                    <jsp:include page="collectionFrameHeader.jsp"> 
    249:                        <jsp:param name="collectionName" value="<%=collection.getName()%>"/>
    250:                        <jsp:param name="viewObject" value="<%=viewObject%>"/>          
    251:                    </jsp:include>          
    
    
    Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:489)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:415)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:347)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:284)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:126)
        at org.openxava.web.servlets.Servlets.getURIAsString(Servlets.java:105)
        at org.openxava.web.dwr.Module.getURIAsString(Module.java:281)
        at org.openxava.web.dwr.Module.fillResult(Module.java:309)
        at org.openxava.web.dwr.Module.request(Module.java:94)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.openxava.web.filters.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:56)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.jasper.JasperException: An exception occurred processing [/xava/collectionFrameHeader.jsp] at line [38]
    
    35: }
    36: %>
    37: <span class="<%=hiddenStyle%>">
    38: (<%=collectionView.getCollectionSize()%>)
    39: <%
    40:     if (collectionView.isCollectionEditable()) {
    41: %>
    
    
    Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:489)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.core_jsp._jspService(core_jsp.java:322)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        ... 49 more
    Caused by: org.apache.jasper.JasperException: An exception occurred processing [/xava/collectionFrameHeader.jsp] at line [38]
    
    35: }
    36: %>
    37: <span class="<%=hiddenStyle%>">
    38: (<%=collectionView.getCollectionSize()%>)
    39: <%
    40:     if (collectionView.isCollectionEditable()) {
    41: %>
    
    
    Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:517)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:460)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:994)
        at org.apache.jsp.xava.detail_jsp._jspService(detail_jsp.java:557)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        ... 62 more
    Caused by: org.openxava.util.XavaException: Errores al obtener la colección de estudios
        at org.openxava.view.View.getCollectionValues(View.java:1850)
        at org.openxava.view.View.getCollectionSize(View.java:1876)
        at org.openxava.view.View.getCollectionSize(View.java:1869)
        at org.apache.jsp.xava.collectionFrameHeader_jsp._jspService(collectionFrameHeader_jsp.java:209)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
        ... 75 more
    

    Clase Visita

    @Entity
    @Getter @Setter
    
    public class Visita extends Identificable {
    
        @ManyToOne(fetch = FetchType.LAZY)
        @ReferenceView("Simple")
        private Paciente paciente;
    
        @DefaultValueCalculator(CurrentLocalDateCalculator.class)
        @Column(name="fecha")
        private LocalDate fecha;
    
        @Column(name="hora")
        @DefaultValueCalculator(horaCalculator.class)
        private LocalTime hora;
    
        @ManyToMany(fetch=FetchType.LAZY)
        private Collection<Estudio> estudios;
    
    }
    

    Clase Estudio

    @Entity
    @Getter @Setter
    public class Estudio extends Identificable {
    
        @Column(name="nombre_estudio")
        private String nombreEstudio;
        @Column(name="precio")
        public Double precio;
    }
    

    Por si es de ayuda, la clase Identificable:

    @MappedSuperclass 
    @Getter
    @Setter
    public class Identificable {
    
            @Id
            @GeneratedValue(generator = "system-uuid")
            @GenericGenerator(name = "system-uuid", strategy = "uuid")
            @Hidden
            private String id;
    }
    

    Por último, adjunto una screenshot del navegador:

     
    • Chungyen Tsai

      Chungyen Tsai - 2024-08-07

      Hola Nora,

      He probado el codigo en un proyecto nuevo y ha funcionado sin problemas, habría que depurar un poco más, sospecho que quiza al cambiar las relaciones varias veces, produjo un erro en la base de datos, aunque no estoy seguro.
      Puedes probar eliminar la base de datos, borra los archivos de la carpeta "data" que se encuentra en el raiz del proyecto, pero antes haz un back up por si el error no es debido a eso.

      Saludos.

       
      • Nora

        Nora - 2024-08-07

        Hola, muchas gracias por tu ayuda :). He migrado a un proyecto nuevo, y solo migrando las clases, tienes razón, funciona perfecto. Este paso me ayudó a detectar que el problema puede reproducirse desde ese punto al añadir un formatter de fecha personalizado o al añadir un custom.css. Luego, aunque elimine los formatters, el custom.css, la carpeta data o haga mvn clean e install, el error sigue sucediendo. Intenté conectarme a dos motores de bases de datos distintos de HSQLDB (PosgreSQL y SQL Server) y el error persiste.

        A este punto sospecho que mi instalación de OpenXava Studio está corrupta. Dejo los códigos por aquí si son de ayuda:

        editors.xml

        <?xml version = "1.0" encoding = "ISO-8859-1"?>
        <!DOCTYPE editors SYSTEM "dtds/editors.dtd">
        <editors>
            <editor name="MyDate" url="dateCalendarEditor.jsp">
                <formatter class="acbr.sonoimagen.sonoimagen.formatters.LocalDateFormatter" />
                <for-type type="java.time.LocalDate" />
            </editor>
        </editors>
        

        LocalDateFormatter.java

        public class LocalDateFormatter implements IFormatter {
        
            private static DateTimeFormatter extendedFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); // Only for some locales like "es" and "pl"
        
            private static DateTimeFormatter [] extendedFormatters = { // Only for some locales like "es", "fr", "ca" and "pl"
                DateTimeFormatter.ofPattern("d/M/yyyy").withResolverStyle(ResolverStyle.SMART),
                DateTimeFormatter.ofPattern("d/M/yy").withResolverStyle(ResolverStyle.SMART), 
                DateTimeFormatter.ofPattern("ddMMyy").withResolverStyle(ResolverStyle.SMART),
                DateTimeFormatter.ofPattern("ddMMyyyy").withResolverStyle(ResolverStyle.SMART),
                DateTimeFormatter.ofPattern("d.M.yy").withResolverStyle(ResolverStyle.SMART),
                DateTimeFormatter.ofPattern("d.M.yyyy").withResolverStyle(ResolverStyle.SMART),
                DateTimeFormatter.ofPattern("yyyy/M/d").withResolverStyle(ResolverStyle.SMART)
            };
        
            private static DateTimeFormatter dotFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); // Only for some locales like "hr"
            private static DateTimeFormatter zhFormatter = DateTimeFormatter.ofPattern("yyyy/M/d");
        
            public String format(HttpServletRequest request, Object date) {
                if (date == null) return "";
                if (date instanceof String || date instanceof Number) return date.toString(); 
                if (((java.time.LocalDate)date).getYear() < 2) return "";
                return getFormatter().format((LocalDate) date);
            }
        
            public Object parse(HttpServletRequest request, String string) throws java.text.ParseException {
                if (Is.emptyString(string)) return null;
                if (isExtendedFormat()) { 
                    if (string.indexOf('-') >= 0) { 
                        string = Strings.change(string, "-", "/");
                    }       
                }
                DateTimeFormatter [] formatters = getFormatters(); 
                for (int i=0; i<formatters.length; i++) {
                    try {
                        return LocalDate.parse(string, formatters[i]);
                    }
                    catch (DateTimeParseException ex) {
                    }                       
                }
                throw new java.text.ParseException(XavaResources.getString("bad_date_format",string),-1);
            }
        
            private boolean isExtendedFormat() {
                return "es".equals(Locales.getCurrent().getLanguage()) ||
                    "ca".equals(Locales.getCurrent().getLanguage()) || 
                    "pl".equals(Locales.getCurrent().getLanguage()) ||
                    "fr".equals(Locales.getCurrent().getLanguage());
            }
        
            private boolean isDotFormat() { 
                return "hr".equals(Locales.getCurrent().getLanguage());
            }
        
            private boolean isZhFormatAndJavaLessThan9() {
                return "zh_CN".equals(Locales.getCurrent().toString()) && !XSystem.isJava9orBetter();
            }
        
            private DateTimeFormatter getFormatter() {
                if (isExtendedFormat()) return extendedFormatter;
                if (isDotFormat()) return dotFormatter;
                if (isZhFormatAndJavaLessThan9()) return zhFormatter;
                return getStandardFormatter();  
            }
        
            private DateTimeFormatter[] getFormatters() {
                if (isExtendedFormat() || isDotFormat() || isZhFormatAndJavaLessThan9()) return extendedFormatters; 
                return new DateTimeFormatter [] { 
                    DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locales.getCurrent()),
                    getStandardFormatter()
                };
            }
        
            private DateTimeFormatter getStandardFormatter() { 
                return DateTimeFormatter 
                    .ofPattern(Dates.getLocalizedDatePattern(Locales.getCurrent()))
                    .withResolverStyle(ResolverStyle.SMART);        
            }
        
        }
        

        Custom.css

        /* pink.css */
        
        @import 'base.css';
        
        :root {
            --my-pink: #ffb3d9;
            --my-dark-pink: #D68189;
            --my-beige: #ffffff;
            --my-brown: #66102a;
            --transparent-pink: rgb(198, 164, 154, 0.2); 
        
        
            /* Modules left menu */
            --modules-list-color: var(--my-beige);
            --modules-list-background: var(--my-pink);
            --modules-list-selected-color: white;
        
            /* Module header */ 
            --module-header-color: white;
            --module-header-background: var(--my-pink);     
        
            /* Button bar */     
            --button-bar-button-color: var(--my-beige);
            --button-bar-background: var(--my-dark-pink);
            --list-formats-color: var(--my-beige);
            --list-formats-hover-color: white;
        
            /* Backgrounds & labels */
            --background: var(--my-beige);
            --color: var(--my-brown);
        
            /* Frames */    
            --frame-background: var(--transparent-pink);
        
            /* Actions */
            --action-color: var(--my-dark-pink);    
            --action-hover-color: var(--my-pink);
            --action-hover-background: white;
            --default-action-button-background: var(--my-pink);
        
            /* Editors */
            --required-editor-border: var(--my-dark-pink);
        
        }
        

        Gracias nuevamente!!

         
        • Chungyen Tsai

          Chungyen Tsai - 2024-08-07

          Hola Nora,

          No debería dar error por css. En la traza decia
          java.lang.IllegalArgumentException: argument type mismatch
          digamos que se está intentando presentar una propiedad con un tipo incorrecto.
          Quizá sea por el type que has adjuntado en editors.xml.
          Porqué tuviste que agregar un LocalDateFormatter para un tipo LocalDate?

          Saludos.

           
          • Nora

            Nora - 2024-08-07

            Hola, ahora entiendo mejor. Tuve que adjuntar este formatter siguiendo un hilo del foro para asegurarme que los datos se muestren correctamente independientemente de la configuración regional de fecha del navegador. Pasa que la base de datos debe ser compartida con microservicios que conectan una app Android, y estos utilizan el formato yyyy-MM-dd. Si el navegador no parsea la fecha en formato yyyy-MM-dd, entonces la app OX no lee el campo fecha desde la bd y tampoco puede guardar, entonces el formatter está ahí para asegurarse de que siempre se parsee así.

            Para probar el funcionamiento del formatter, borré las bd existentes, creé una única para OpenXava, e intenté @ManyToOne (fetch = fetchType.LAZY) Estudio estudio y todo funciona perfectamente, mientras que si hago lo mismo y vuelvo a @ManyToMany, sigo obteniendo el error. Por último intenté quitar el campo fecha en Visita utilizando esta última relación y no tuvo efecto.

            Hice el mismo experimento en la base de datos compartida y obtuve los mismos resultados, incluso me aseguré de que la capa modelo de los microservicios estuviera igual que en OX por si el problema era que las tablas no estaban iguales al usar ambas cosas.

            En resumen, la única relación que no funciona después del formatter es ManyToMany.

            Muchas gracias por tu paciencia, saludos

             

            Last edit: Nora 2024-08-07
            • Chungyen Tsai

              Chungyen Tsai - 2024-08-12

              Hola Nora,

              Claro, en muchos bd por defecto los formatos de fecha son yyyy-MM-dd y OX lo procesa sin problemas.

              Antes que nada, había probado tu formatter y no me anduvo, por lo que creé un nuevo proyecto usando el formatter que trae por defecto OX.

              • OX usa HSQLDB, que para LocalDate crea una columna de tipo date y lo guarda a su manera, pero OX al leerlo, lo obtiene como formato yyyy-MM-dd, en esta parte trabaja bien.
              • Así que para asegurarme, me conecte a MySQL y por defecto tambien es una columna de tipo DATE y guarda los datos en forma 'yyyy-MM-dd', el formatter original tambien trabaja bien leyendo y guardando fechas en la base de datos con ese format por defecto (imagen adjunta).

              Cómo tienes la columna de fechas y en que bd lo estas usando? Quizá la diferencia esté aquí, ya que con lo probado anteriormente no deberia hacer falta crear otro formatter.

              El otro dia probe el @ManyToMany, de esta manera y funcionaba, pero comente el calculator de hora. Cabe aclarar que lo probe con MySQL y las tablas generadas automaticamente, quizá halla diferencia con las tuyas por eso no me da error.

              @Entity
              @Getter @Setter
              
              public class Visita extends Identificable {
              
                  @ManyToOne(fetch = FetchType.LAZY)
                  @ReferenceView("Simple")
                  private Paciente paciente;
              
                  @DefaultValueCalculator(CurrentLocalDateCalculator.class)
                  @Column(name="fecha")
                  private LocalDate fecha;
              
                  @Column(name="hora")
                  //@DefaultValueCalculator(horaCalculator.class)
                  private LocalTime hora;
              
                  @ManyToMany(fetch=FetchType.LAZY)
                  private Collection<Estudio> estudios;
              
              }
              

              En todo caso, puedes hacer un pequeño proyecto con el código suficiente que te causa error y me lo adjuntas así lo pruebo.

              Saludos.

               

              Last edit: Chungyen Tsai 2024-08-12
  • Nora

    Nora - 2024-08-12

    Hola!! Muchas gracias por explicarme lo del formatter, pasa que sin él obtenía un error de "No es posible convertir fecha en Visita en texto", lamentablemente ya no pude reproducir el error para obtener la traza. Ahora descargué la última versión de OX, volví a crear la base de datos en PostgreSQL, cloné el proyecto y todo está perfecto sin el formatter. El error era persistente cuando utilizaba SQL Server, pero cambiando de motor esto se solucionó.

    Abajo adjunto el formato de la columna fecha y también las relaciones entre tablas que a mi parecer están bien definidas, son las creadas automáticamente

    Aquí está un link del proyecto, hice dos branches, en el branch master utilizo @ManyToOne, pero en el branch manytomany se encuentra la versión con el problema restante: https://github.com/evanessscence/sonoimagen.git

    Saludos

     
    • Chungyen Tsai

      Chungyen Tsai - 2024-08-14

      Hola Nora,
      Estuve probando un poco el branch manytomany en el commit Fixed bug where the current date didn't show properly.
      Para lograr que me funcionara, cambie

      @ManyToOne(fetch = FetchType.LAZY)
          private Estudio estudios;
      

      Por

          @ManyToMany
          Collection<Estudio> estudios;
      

      También tuve que comentar los dos calculadores:

          //@DefaultValueCalculator(fechaCalculator.class)
          @Column(name="fecha")
          private LocalDate fecha;
      
          @Column(name="hora")
          //@DefaultValueCalculator(horaCalculator.class)
          private LocalTime hora;
      

      Probe con dejar alguno de ellos y ambos dan error, así que dejé el fechaCalculator y fui directamente al LocalDateFormatter que tienes para ver cual era el error.

      El método format en pocas palabras se dedica a leer y transcribir para mostrar en pantalla, entonces el dato que entra es '2024-08-13' y lo transforma al final en '13/08/2024' mientras que el formatter original devuelve otro formato.

      Viendo la ultima linea del método format, mude el formatter del calculador al formateador, ya que el trabajo debería estar allí. En vez de formatear como OpenXava lo hacía, lo formatea a tu manera.

          public String format(HttpServletRequest request, Object date) {
              System.out.println(date);
              if (date == null) return "";
              if (date instanceof String || date instanceof Number) return date.toString(); 
              if (((java.time.LocalDate)date).getYear() < 2) return "";
              System.out.println("antes err");
              System.out.println(getFormatter().format((LocalDate) date));
              DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
              System.out.println(formatter.format((LocalDate) date));
              return formatter.format((LocalDate) date);
          }
      

      El calculador queda así, digamos que igual a CurrentLocalDateCalculator.

      public class fechaCalculator implements ICalculator {
      
           @Override
           public Object calculate() throws Exception {
               LocalDate fechaActual = LocalDate.now();
               return fechaActual;
      //       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
      //       System.out.println(fechaActual);
      //       return fechaActual.format(formatter);
           }
      
      }
      

      Ahí funcionó el módulo, se mostro sin problemas y se pudo guardar, obviamente no hice más pruebas.
      Al alterar el formateador, funciona unicamente con navegador en español y se visualiza mal en otros idiomas. Quizá se pueda adaptar para otros idiomas, pero ya hay que debuggear. Por ejemplo hacer un Locale.getCurrent() en format y en caso que el navegador sea español usar tu formateo y dejar los otros idiomas como estaba antes, algo que se me ocurrió ahora.
      Para el caso de LocalTime, quizá sea algo similar, no estoy seguro.

      Ahora porqué solo funciona mal cuando hay un ManyToMany, ni idea.
      Quizá ya había problema antes (por los formatos de fechas), solo que faltaba la última paja para aplastar al camello y eso fue el ManyToMany.
      Así que no sería un bug.

      Saludos.

       
  • Nora

    Nora - 2024-08-14

    Hola Chungyen, muchas gracias. Ese era el principal problema. Al cambiar de motor, modificar las calculadoras y eliminar el formatter todo funciona a la perfección. Me voy con mil conocimientos más sobre OX gracias a este hilo, mil gracias por tu tiempo y paciencia al ayudarme. Saludos!!

     

Log in to post a comment.