我在任何应用程序服务器/Web 服务器上部署了一个 Java/Java EE 中的 Web 应用程序。我想在我的应用程序中获取此服务器上配置的所有数据源。
有没有人有任何想法来实现它?我可以通过 WLST ant 任务获得这些。但我需要以编程方式获取它们。
我在任何应用程序服务器/Web 服务器上部署了一个 Java/Java EE 中的 Web 应用程序。我想在我的应用程序中获取此服务器上配置的所有数据源。
有没有人有任何想法来实现它?我可以通过 WLST ant 任务获得这些。但我需要以编程方式获取它们。
如果您的数据源配置了 JNDI,那么您可以列出上下文并可以使用 Context.list() 方法获取所有名称(更多来自此处),并且从这些名称中您可以找到所有数据源
Context.list() 返回 NameClassPair 的枚举。每个 NameClassPair 由对象的名称和它的类名组成。所以只需迭代它并检查 java.sql.DataSource 的类名,然后获取对象名来检索它。
使用 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);
s
mbeans 集合在哪里。