Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Aplicación J2EE (Web, Ejb, Datasource)
Enviado por lesancor el día 16 de mayo de 2006
Hola:
Estoy haciendo un programa en J2ee (soy un novato) y me tiraron a los leones de una...
Ahora estoy tratando de hacer una conexión a la Base de Datos mediante un DataSource (creo q ya lo tengo configurado en el servidor WAS de IBM, lo probé en el administrador de consola del servidor y me funciona).
La conexión tiene que ser desde la capa EJB, utilizando JNDI para obtener el data source... tengo el siguiente código, pero no tengo que ponerlo en el EJB mismo, sino que, se recomienda tenerlo centralizado, implementando el patrón Service Locator.
InitialContext contexto = new InitialContext(prop);
try {
// suponiendo que en ejb-jar.xml esta declarado el resource-ref con
// el nombre dataSOURCE
DataSource origenGo = (DataSource) contexto.lookup(\\\"java:comp/env/dataSOURCE\\\");
connection = origenGo.getConnection();
} finally {
contexto.close();
}
--------------------------------------------------------------------------------------------------------------------------------------
Al ser la conexión en la capa EJB... ¿que Beans se usa? y ¿como se hace la relación con el datasource?
Una vez hecha la conexión en la capa EJB, ¿como hago referencia a esa conección desde la capa de presentación (una JSP por ejemplo) ?
Y lo otro que se me queda en el tintero, ¿en que parte se deja el código del \\\"service locator\\\"?, lo tengo y lo entiendo.... pero el problema es que no se si va en el EJB o en el modulo Web.
Si hay alguien de buena voluntad que me pueda ayudar, se lo agradecería un montón.
Hola,
puedes crear una clase p.e. MaestroDB con el codigo que abre las conexiones desde el pool y crear dos metodos, AbrirConexion y CerrarConexion.
Despues tus beans haces que extiendan de esta clase y listo: cada vez que accedas a ddbb abres, y luego cierras.
Ciao