GRAVE: Could not find datasource

2013-07-19
2013-08-30
  • Saludos,
    Tengo un problema con LifeRay 6.1ga2. En algunas compus se da y en otras no, teniendo el mismo proyecto.

    Copio el contexto de mi proyecto OX a Context.xml y también a ROOT.xml igual en las PCs.

    Lo extraño es que algunas diferentes PCs con la misma versión de liferay me funciona y los portlets se cargan bien y en otras no.

    El mensaje de error cuando se carga algún el portlet del proyecto es:
    "Módulo desconocido no está disponible temporalmente"

    El deploy lo hace sin error en todos los casos.

    La traza completa es muy grande entonces la corto y es la siguiente:

    ...
    19/07/2013 09:57:06 PM org.hibernate.util.NamingHelper getInitialContext
    INFO: JNDI InitialContext properties:{}
    19/07/2013 09:57:06 PM org.hibernate.connection.DatasourceConnectionProvider configure
    GRAVE: Could not find datasource: java:comp/env/jdbc/MaximoNominaDS
    javax.naming.NameNotFoundException: El nombre java:comp/env/jdbc/MaximoNominaDS no este asociado a este contexto
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)

    ...

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
    

    19/07/2013 09:57:07 PM org.openxava.annotations.parse.AnnotatedClassParser getManagedClassNames
    ADVERTENCIA: Conexión de Hibernate no funciona, por lo tanto obtenemos las clases gestionadas por JPA directamente del classpath
    javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build EntityManagerFactory
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)

    ...

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
    

    Caused by: org.hibernate.HibernateException: Could not find datasource
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143)
    at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
    ... 224 more
    Caused by: javax.naming.NameNotFoundException: El nombre java:comp/env/jdbc/MaximoNominaDS no este asociado a este contexto
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
    ... 231 more
    19/07/2013 09:57:07 PM org.openxava.annotations.parse.AnnotatedClassParser obtainManagedClassNamesFromFileClassPath
    ADVERTENCIA: Ficheros ancla para obtener clases gestionadas por JPA no encontrados: xava.properties, application.xml, aplicacion.xml
    21:57:07,043 ERROR [http-bio-8080-exec-4][PortletRequestDispatcherImpl:137] org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /WEB-INF/jsp/xava/portlet.jsp en línea 16

    13: "&module=" +
    14: request.getParameter("xava.portlet.module");
    15: %>
    16: <jsp:include page="&lt;%=moduleURL%&gt;" &gt;<="" p="">

    ...

    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
    ... 224 more
    

    Caused by: javax.naming.NameNotFoundException: El nombre java:comp/env/jdbc/MaximoNominaDS no este asociado a este contexto
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
    ... 231 more
    21:57:07,056 ERROR [http-bio-8080-exec-4][PortletServlet:115] javax.portlet.PortletException: org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /WEB-INF/jsp/xava/portlet.jsp en línea 16

    13: "&module=" +

    ...

    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
    ... 224 more
    

    Caused by: javax.naming.NameNotFoundException: El nombre java:comp/env/jdbc/MaximoNominaDS no este asociado a este contexto
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
    ... 231 more
    21:57:07,067 ERROR [http-bio-8080-exec-4][render_portlet_jsp:154] javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build EntityManagerFactory
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
    at org.openxava.jpa.XPersistence.getEntityManagerFactory(XPersistence.java:182)
    at org.openxava.jpa.XPersistence.createManager(XPersistence.java:108)
    at org.openxava.annotations.parse.AnnotatedClassParser.obtainManagedClassNamesUsingJPA(AnnotatedClassParser.java:2524)

    ...

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
    

    Caused by: javax.naming.NameNotFoundException: El nombre java:comp/env/jdbc/MaximoNominaDS no este asociado a este contexto
    at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
    ... 231 more

    ...

    Gracias de antemano
    Oswall

     
  • Javier Paniza
    Javier Paniza
    2013-07-24

    Hola Oswall,

    es muy extraño, no encuentra la fuente de datos mediante JNDI. Bueno, en realidad no es extraño, lo extraño es que ocurra de forma intermitente.

    Pon aquí el contenido del context.xml que has puesto en tu tomcat/conf y el persistence.xml de tu proyecto.

    Una cosa que puedes hacer para depurar es escribir un portlet propio (sin OpenXava) que usando la API JNDI obtenga todo el contenido del espacio JNDI. Eso te puede dar una pista.


    Ayuda a otros en este foro como yo te ayudo a ti.
    ¿Necesitas más ayuda? Usa el soporte profesional de OpenXava

     
  • Hola Javier,

    La diferencia que hay entre unos y otros son los plugins Liferay instalados.
    Tomé una copia Liferay, instalé un portlet de OpenXava y empezé a probar los plugins a ver cual me daba problemas.

    Versión Liferay es cega2, OX 4.8, OS linux ubuntu 12.10.

    Los siguientes plugins de Liferay me dan problemas con los portlest OX. Cuando instalo uno de estos individualmente o conjuntamente, pierde la fuente de datos de mi portlet OX, cuando los desinstalo la recupera; son los siguientes:

     Facebook
     LinkedIng
     Carousel (Xtivia)
     Responsive Carousel
     WhereIAm
    

    Los que no me dieron ese problema son estos:
    Youtube plugin
    Knowledge Base
    MailCE
    WebForm
    ChatCE
    Twitter
    Flash
    PDFViewer
    Device Recognition
    Newsletter
    Time Tracking
    Private Plugin instaler

    Igual en otro correo te envío el context.
    Gracias
    Oswall

     
  • Javier Paniza
    Javier Paniza
    2013-08-05

    Hola Oswall,

    es como si esos portlets anularan el context.xml del Tomcat. ¿Has buscado en los foros de Liferay sobre esto? Esto tiene que afectar a todas la aplicaciones que usan fuente de datos en Liferay, no sólo a OpenXava.

    Prueba poner el context.xml en el META-INF de tu war.


    Ayuda a otros en este foro como yo te ayudo a ti.
    ¿Necesitas más ayuda? Usa el soporte profesional de OpenXava

     
  • gregorio
    gregorio
    2013-08-28

    Saludos.

    Estoy con algo similar,
    Edito un cliente ( cambio el nombre ) , lo guardo.
    Paso a contratos donde se encuentra el cliente o selecciono otro cliente, lo guardo.
    Vuelvo al módulo de clientes y me muestra el error
    Pronaus - Cliente no está disponible temporalmente .
    Vuelvo al módulo de contratos y mismo error. Pronaus - Contrato prestamo no está disponible temporalmente

    La parte de la traza que me llama la atención es :

    15:36:11,554 ERROR [http-bio-80-exec-6][PortletServlet:115] javax.portlet.PortletException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.openxava.util.ElementNotFoundException: Objeto de sesión xava_view_Datos del Pr�stamo no encontrado en controladores.xml
    javax.portlet.PortletException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.openxava.util.ElementNotFoundException: Objeto de sesión xava_view_Datos del Pr�stamo no encontrado en controladores.xml
    at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:139)

    y más abajo :

    Caused by: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.openxava.util.ElementNotFoundException: Objeto de sesión xava_view_Datos del Pr�stamo no encontrado en controladores.xml
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)

    Yo tengo controllers.xml en C:\liferay-portal-6.1.1-ce-ga2\tomcat-7.0.27\webapps\Pronaus\WEB-INF\classes

    Intenté copiando controllers. xml a controladores.xml pero el error persiste.

     
  • Javier Paniza
    Javier Paniza
    2013-08-30

    Hola Gregorio,

    ¿puedes poner aquí el código fuente de tu entidad?

    Puede que esté relacionado con usar acentos como nombres de grupo y sección.

    Por cierto, tu error no es el mismo que el planteado originalmente en el hilo, el cual es sobre no encontrar la fuente de datos. Deberías haber añadido un nuevo hilo.


    Ayuda a otros en este foro como yo te ayudo a ti.
    ¿Necesitas más ayuda? Usa el soporte profesional de OpenXava