1

我已经搜索了很长时间,但我找不到任何好的教程或这个问题的答案。

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

我只是想添加一个 JNDI 数据源,用于在 Java 中以编程方式汇集 sql 连接。有没有人可以为我指出一个好的教程,或者提供一些关于如何实现这一点的提示?

4

1 回答 1

1

您选择了一个没有完整 Web 容器的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

然后在您的源代码中始终使用此方法。

于 2013-07-22T08:09:41.823 回答