从哪里初始化基于Jersey的应用程序的数据库连接

时间:2014-07-10 13:59:07

标签: java jersey

我是Java Web编程的新手,我正在尝试设置基于Jersey的应用程序。

我需要设置数据库连接池,我正在努力寻找一个如何做到的好例子(以最好的方式)。根据我的理解,它应该发生在Servlet的init()方法中。我读了一些关于ServletContextListener的东西,它可以在web.xml中设置,但我不认为我的容器(Glassfish)支持web.xml。

还有一个问题是如果数据库断开连接会发生什么?如果我在init()上建立连接,它只运行一次我应该如何重新连接?

//编辑:我认为我的问题的重要部分是确信Grizzly是我的容器(而不是Glassfish,如下所述)

2 个答案:

答案 0 :(得分:1)

您没有在代码中设置连接池。您将使用Glassfish提供的管理控制台进行设置:

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

在获取连接方面,您只需使用CDI将数据源注入代码:

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

其中name是数据源的JNDI名称。

  

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

就连接池管理而言,您不必担心代码中的问题。容器将为您处理所有这些。显然,通过管理控制台,您可以配置其属性。

在查找资源及其历史(Java EE 6之前)方面,您将从Pascal Thivent中找到一个很好的答案: Proper usage of JDBC Connection Pool (Glassfish)

答案 1 :(得分:0)

将其定义为应用程序服务器(即Glassfish)中的数据源,并使用JNDI进行查找。