martes, 30 de noviembre de 2010

Error adquiriendo fuentes de datos en jDeveloper 11

En los últimos días he estado lidiando con un problema trabajando con jDeveloper 11.1.1.3.0. Estaba desarrollando una aplicación utilizando ADF y EJB, que venía funcionando correctamente. Sin embargo, un buen día, al arrancar el servidor, sin haber realizado cambios desde la última vez, me encuentro que mi aplicación lanza la siguiente excepción:


Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [java:/app/jdbc/jdbc/TareasDS].
Internal Exception: javax.naming.NameNotFoundException: While trying to look up /app/jdbc/jdbc/TareasDS in /app/ejb/ModelEJB.jar#TareasSessionEJB.; remaining name '/app/jdbc/jdbc/TareasDS'
at org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:451)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:116)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
...
...
...
Caused by: javax.naming.NameNotFoundException: While trying to look up /app/jdbc/jdbc/TareasDS in /app/ejb/ModelEJB.jar#TareasSessionEJB.; remaining name '/app/jdbc/jdbc/TareasDS'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:135)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:110)
... 204 more


Este error indica que la aplicación está tratando de acceder al DataSource indicado en el fichero persistence.xml, pero no lo consigue. Por tanto lo primero que uno puede pensar es que el fallo tiene que venir de algún problema de configuración de ese fichero, y empezar a editarlo: quitando el doble /jdbc, añadiendo y eliminando propiedades... Sin embargo no van por ahí los tiros.

A la hora de desplegar una aplicación en el servidor de aplicaciones WebLogic embebido de jDeveloper, éste crea fuentes de datos basándose en las conexiones configuradas por el usuario, que se pueden ver en la pestaña Database Navigator (si no la veis junto al Application Navigator podéis mostrarla mediante el menú View - Database - Database Navigator).

Pues bien, en mi caso el problema se debía a que, por algún motivo, la contraseña había desaparecido de las propiedades de la conexión que había configurado para mi aplicación. Bastó volver a introducirla y redesplegar la aplicación para que todo volviese a funcionar como siempre.

Sólo queda averiguar qué fue de la contraseña.

No hay comentarios:

Publicar un comentario

Cualquier aportación será bienvenida