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

Java 如何访问我的EAR部署信息,java,jakarta-ee,module,jboss5.x,ear,Java,Jakarta Ee,Module,Jboss5.x,Ear,嗨 我正在JBoss5.1中部署一个EAR文件。我希望能够访问存储在“display name”下的部署文件“application.xml”中的EAR应用程序名称 我想深入了解一个管理webapp如何读取此信息并显示我的EAR部署的所有模块 我认为application.xml是搜索此信息的正确位置 我试着: InputStream in = new MyController().getClass().getResourceAsStream("META-INF/application.xml"

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

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

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

我试着:

InputStream in = new MyController().getClass().getResourceAsStream("META-INF/application.xml");
但是不要工作!返回空值


建议?(请输入代码)

在路径开头添加斜杠:

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

它应该会起作用

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

我解决了:

    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来访问应用服务器资源

最好的办法是什么