私のソース コードでは、コードが展開されている現在の EAR の最終更新日をプログラムで取得したいと考えています。私はOracle WebLogicを使用しています。どうすればそれができますか?
あなたの答えのためのThx
一歩下がって、あなたが解決しようとしている問題に目を向けることをお勧めします、エリック。
アプリケーションがいつビルドされたか、またはデプロイしたアプリケーションの特定のバージョンを知りたいですか? その場合は、ビルド プロセスに何かを組み込んでこれを設定するのがおそらく最善の方法です。理想的には、アプリケーションのパッケージ化に使用される特定のコンポーネント バージョンのマニフェストです。
アプリケーションが管理者によって最初にデプロイされた時期、または最後にデプロイされた時期を知りたい場合は、さらに注意が必要です。この問題を解決するためにファイル システムに依存することは、悪い考えです。なぜなら、WebLogic Server が行っていることに翻弄されるからです。
これが絶対に必要な場合、WebLogic Server の標準的なステージング動作では、ファイルのバージョンが各サーバ インスタンスの特定のサブディレクトリに配置され、非常に迅速に分離されます。(これは、ドメイン ($DOMAIN_HOME) のルート ディレクトリの下にある「servers//stage」サブディレクトリです。$DOMAIN_HOME は実行時のすべてのサーバー プロセスの現在のディレクトリであるため、相対パスは正常に機能するはずです。
これにより、ファイルがネットワーク全体にデプロイされた時間がわかるはずですが、サーバー インスタンスを再起動して観察された動作を確実にテストする必要があります。
これに関する問題は、ビルド プロセスまたはデプロイ プロセスに関する WLST スクリプトのいずれかを介して、より洗練された方法で決定できなかったものは何も得られないことです。
アプリケーション自体が最後にデプロイされたのは (バージョンに関係なく)、アプリケーション ライフサイクル イベント リスナーは間違いなく最適な方法です。残念ながら、個々のアプリケーションのアップタイムを提供する MBean はありません。
ライフサイクル リスナーに関する優れたリファレンスがここにあります。
http://download.oracle.com/docs/cd/E17904_01/web.1111/e13712/app_events.htm#i178290
ファイルのプロパティを確認するか、EAR 内に存在する MANIFEST.MF の内部を確認できます。