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 ...
建议? (代码请)
答案 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来访问应用服务器资源......
最好的方法是什么?