【问题标题】:Embedded Jetty 8 and configuration of JNDI MySQL connection pool with no XML嵌入式 Jetty 8 和无 XML 的 JNDI MySQL 连接池配置
【发布时间】:2013-07-22 07:37:28
【问题描述】:
我已经搜索了很长时间,但我找不到任何好的教程或这个问题的答案。
在这个项目中,只有一个 XML 文件 pom.xml,服务器是一个嵌入式 Jetty 8,带有一个以编程方式定义的 ServletContextHandler 来处理所有传入的请求。我的观点是,没有 WebAppContext 或 WAR 文件(似乎所有教程都需要 WEB-INF、WebAppContext、web.xml、jetty-env.xml 或 WAR 文件)。
我只想添加一个 JNDI 数据源,以便在 Java 中以编程方式汇集 sql 连接。有没有人可以为我指出一个好的教程,或者提供一些关于如何实现这一点的提示?
【问题讨论】:
标签:
java
maven
jndi
connection-pooling
embedded-jetty
【解决方案1】:
您选择了一个 embedded-jetty 及其特殊的 ServletContextHandler,但没有完整的 Web 容器(这并不是批评,只是您到目前为止所遵循的路径)。
如果这也是您的目标环境,为什么还需要 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
然后在您的源代码中始终使用此方法。