1

你好,

我正在将一个 EAR 文件部署到我的 JBOSS 5.1 中。我希望能够访问存储在“显示名称”下的部署文件“application.xml”中的 EAR 应用程序名称。

我想深入部署一个 admin-webapp 如何读取此信息并显示我的 EAR 部署的所有模块

我认为 application.xml 是搜索此信息的正确位置...

我试过了:

InputStream in = new MyController().getClass().getResourceAsStream("META-INF/application.xml");

但不工作!返回空...

建议?(请代码)

4

2 回答 2

3

在路径的开头添加斜杠:

InputStream in = new MyController().getClass().getResourceAsStream("/META-INF/application.xml");

它应该工作。

但我认为更好的解决方案是使用 JMX。它为您提供更高级别的 API 来访问应用服务器资源,包括已部署的应用程序。这种方法的缺点是恐怕您的代码将是 JBoss 特定的。

于 2011-02-23T09:04:58.487 回答
0

我解决了:

    ClassLoader loader = getClass().getClassLoader();
    URL url = loader.getResource("META-INF/application.xml");
    BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
    while (true) {
        String line = reader.readLine();
        System.out.println(line);
        if (line == null) {
            break;
        }
    }

通过这种方式,我解决了问题并打印了样本内容......

但我搜索了一个高级 API 来访问应用服务器资源......

最好的方法是什么?

于 2011-02-23T09:49:49.027 回答