如何访问我的EAR的部署信息

时间:2011-02-23 08:55:16

标签: java java-ee module jboss5.x ear

HI,

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

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

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

我试过:

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

但是不行! return null ...

建议? (代码请)

2 个答案:

答案 0 :(得分:3)

在路径的开头添加斜杠:

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

它应该有用。

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

答案 1 :(得分: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来访问应用服务器资源......

最好的方法是什么?