1

我在任何应用程序服务器/Web 服务器上部署了一个 Java/Java EE 中的 Web 应用程序。我想在我的应用程序中获取此服务器上配置的所有数据源。

有没有人有任何想法来实现它?我可以通过 WLST ant 任务获得这些。但我需要以编程方式获取它们。

4

2 回答 2

1

如果您的数据源配置了 JNDI,那么您可以列出上下文并可以使用 Context.list() 方法获取所有名称(更多来自此处),并且从这些名称中您可以找到所有数据源

Context.list() 返回 NameClassPair 的枚举。每个 NameClassPair 由对象的名称和它的类名组成。所以只需迭代它并检查 java.sql.DataSource 的类名,然后获取对象名来检索它。

于 2013-08-14T09:18:34.323 回答
0

使用 JBoss,您可以执行以下操作(假设 JMX 可用):

Context ctx = new InitialContext();
MBeanServerConnection mconn = (MBeanServerConnection)ctx.lookup("jmx/invoker/RMIAdaptor");
ObjectName name = new ObjectName("jboss.jca:service=DataSourceBinding,*");
Set s = mconn.queryMBeans(name, null);

smbeans 集合在哪里。

于 2013-08-14T09:20:57.497 回答