En el administrador de Glassfish, configuro un grupo de conexión JDBC al que puedo hacer ping. También en el administrador de Glassfish, he configurado un recurso JDBC de JNDI llamado jdbc / myDb
Sin embargo, no puedo conectarme desde Java. He intentado con ambos estilos de inyección:
@Resource (mappedName="jdbc/myDB")
private DataSource datasource;
También he probado el estilo de contexto:
Context ctx = new InitialContext();
DataSource datasource = (DataSource)ctx.lookup("jdbc/myDB")
Todo lo que obtengo es java.lang.NullPointerException.
También he probado varios estilos de nombres como java: jdbc / myDB o java: comp / env / jdbc / myDb
Esto utiliza el último Glassfish (4.1), el último controlador de Postgres (9.3-1102 JDBC 41) contra Postgres 9.4 y el último Java (1.8.0_31-b13).
Respuestas
2 para la respuesta № 1Acceda al menú JDBC -> Recursos JDBC -> jdbc / __ predeterminado
Elija su DBName en el menú desplegable "Nombre del grupo:" y use
@Resource (mappedName="jdbc/__default")
¡Cuidado con los dos "_"!
Al menos esto funciona para mí.
p.s .: ¿Puede especificar dónde se lanza el NPE?