/ / Dónde inicializar la conexión de la base de datos para la aplicación basada en Jersey - java, jersey

Dónde inicializar la conexión de la base de datos para la aplicación basada en Jersey - java, jersey

Soy nuevo en la programación web de Java y estoy tratando de configurar una aplicación basada en Jersey.

Necesito configurar el conjunto de conexiones de la base de datos y yo "mluchando por encontrar un buen ejemplo de cómo hacerlo (de la mejor manera posible). A mi entender, debería ocurrir con el método init () de Servlet. Leí algo sobre ServletContextListener que se puede configurar en web.xml pero no creo que mi contenedor (Glassfish) admita web.xml.

Una pregunta más es ¿qué pasará si una base de datos se desconecta? Si establezco una conexión en init () que se ejecuta solo una vez, ¿cómo debo volver a conectarme?

// edición: creo que la mayor parte de mi problema fue convencerme de que Grizzly es mi contenedor (en lugar de Glassfish, como se señala a continuación)

Respuestas

1 para la respuesta № 1

No configure el conjunto de conexiones en código. Usará la consola de administración provista por Glassfish para configurar esto:

http://docs.oracle.com/cd/E18930_01/html/821-2416/ggndx.html#gharo

En términos de obtener una conexión, simplemente inyecte un DataSource en su código usando CDI:

@Resource(name="jdbc/mydatabase")
private DataSource dataSource;

donde nombre es el nombre JNDI para la fuente de datos.

Java EE 7: http://docs.oracle.com/javaee/7/api/javax/annotation/Resource.html

Java EE 6: http://docs.oracle.com/javaee/6/api/javax/annotation/Resource.html

En términos de administración de grupos de conexiones, no necesita preocuparse por eso en el código. El contenedor manejará todo eso por usted. Obviamente, a través de la consola de administración, puede configurar sus propiedades.

Encontrará una buena respuesta de Pascal Thivent en cuanto a la búsqueda de recursos y su historial (antes de Java EE 6): Uso adecuado de la agrupación de conexiones JDBC (Glassfish)


0 para la respuesta № 2

Defínalo como una fuente de datos en el servidor de aplicaciones (es decir, Glassfish) y búsquelo utilizando JNDI.