嵌入式Jetty 8和没有XML的JNDI MySQL连接池的配置

时间:2013-07-22 07:37:28

标签: java maven jndi connection-pooling embedded-jetty

我现在一直在寻找,我无法找到任何好的教程或这个问题的答案。

在这个项目中只有一个XML文件pom.xml,服务器是一个嵌入式Jetty 8,它有一个以编程方式定义的ServletContextHandler来处理所有传入的请求。我的观点是,没有WebAppContext或WAR文件(因为所有教程似乎都期望WEB-INF,WebAppContext,web.xml,jetty-env.xml或WAR文件)。

我只想添加一个JNDI数据源,用于在Java中以编程方式汇集sql-connections。有没有人可以指点我一个好的教程,或者提供一些如何实现这一目标的技巧?

1 个答案:

答案 0 :(得分:1)

您选择了一个embedded-jetty,其特殊ServletContextHandler没有完整的网络容器(这不是批评,只是您到目前为止所遵循的路径)。

如果这也是您的目标环境,为什么还要在此基础上使用JNDI?有些东西必须提供JNDI实现。我只想添加一个像BoneCP,C3PO等连接池,并在没有JNDI的情况下使用它。

另一方面,如果您的目标环境要求您使用连接池,则始终可以在两个提供程序之上添加您自己的方法:

伪代码:

public class MyConnectionFactory

// To be replaced with a property lookup etc.
private boolean development = true;

public Connection getConnection(String jndiName)
  if (development)
    // get connection from BoneCP etc. (ignore jndiName)
  else {
    // lookup data source using JNDI, then get connection

然后在你的源码中总是使用这种方法。