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