2011-02-23 18 views
1

HI、EARの展開情報へのアクセス方法

私はJBoss 5.1にEARファイルを展開しています。私は、 'display-name'の配備ファイル "application.xml"に格納されているEARアプリケーション名にアクセスしたいと考えています。

私がしようと試みた私は、私はそれがこの情報を検索するための正しい場所のapplication.xmlどのように考えるか、この情報を読んで、私の耳

のデプロイされたすべてのモジュールを表示、管理、Webアプリケーションをdeeployしたい

...

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

しかし、動作しません! nullを返す...

提案ですか? (コードしてください)

答えて

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を検索

どのような方法が最適ですか?

3

は、あなたのパスの先頭にスラッシュを追加します。

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

それが動作するはずです。

しかし、もっと良い解決策はJMXを使うことだと思います。デプロイされたアプリケーションを含むアプリケーションサーバーのリソースにアクセスするためのより高いレベルのAPIを提供します。このアプローチの欠点は、あなたのコードがJBoss固有のものになることを恐れていることです。

関連する問題