Estoy intentando accesar al pool de conexiones que se genera en el glassfish desde una clase en java pero no puedo, ya verifique que desde el glassfish si se realice la conexion. Esta en un proyecto Java Web.
Coloco el codigo de la clase para que vean que esta correcto
Código C++:
Ver original
package conexion; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.sql.DataSource; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; public class conexion { public String datos() { try { DataSource ds = getConexion(); Connection con = ds.getConnection(); Statement st = con.createStatement(); String nombres = ""; ResultSet rs = st.executeQuery("select * from usuarios"); while (rs.next()) { nombres += rs.getString(1) + " " + rs.getString(2) + ","; } System.out.println(nombres); return nombres; } catch(Exception e) { System.out.println(e); } return "no funciono"; } private DataSource getConexion() throws NamingException { Context c = new InitialContext(); return (DataSource) c.lookup("java:comp/env/conexionPruebas"); } }
Si no estoy mal conexionPruebasss deberia ser el nombre de mi jndi que se muestra en el glassfish en el apartado de recursos JDBC, el cual esta igual.
Me di cuenta de que no entra en try de la funcion datos() y pasa al catch enviandome en pantalla lo siguiente
javax.naming.NamingException: Lookup failed for 'java:comp/env/conexionPruebas' in SerialContext [Root exception is javax.naming.NameNotFoundException: No object bound to name java:comp/env/conexionPruebas]
Pero no encuentro cual es el problema.
Por cierto he hecho este mismo ejemplo sin cambiar nada, pero con la version de java EE5 y funciona bien pero con java EE6 nop, ademas de que el servidor es el mismo glassfish v3.
Si pudieran darme una ayudada... estaria muy agradecido.