Aplicación J2EE (Web, Ejb, Datasource)

lesancor
29 de Junio del 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.

------------------------------------------------------------------------------------------------------------------------------------
Connection connection = null;
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, \"com.ibm.websphere.naming.WsnInitialContextFactory\");

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.

RobertoGP
29 de Junio del 2006
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