2016-10-17 2 views
0

JSPおよびサーブレットを使用してJava EE 7でWebアプリケーションを作成し、ローカルのWildfly 10サーバーにデプロイします。JSPページにデプロイメントタイムスタンプを含める

私のコードの開発とテストを手助けするために、表示されたWebページにタイムスタンプを少し入れておくと、ブラウザで見ているバージョンがいつ展開されたかを直接見ることができます。

これは、私が変更を展開するのを忘れたり、最新のキャッシュされたバージョンではなく古いキャッシュバージョンを見ることを妨げてしまいます。

Java EE WebアプリケーションをWebページ上のWildflyサーバーに直接デプロイした日時を表示するにはどうすればよいですか?

私のIDEはJava EEのEclipse Neonです。

答えて

1

これは配備時間ではなく、アプリケーションの開始時間です。たぶんそれはあなたの目的のために有用です。クラスを挿入して、それを使用してページのデータを表示することができます。

別に私はまた、あなたはgitのを使用する場合(ページ上でそれを表示するために使用できるproperyファイル、に...、IDをコミット、ビルド時のようなものを生成することができた Maven Git Pluginについて考えることができることから、
@Startup 
@Singleton 
public class Deploytime 
{ 
    private LocalDateTime starttime; 

    @PostConstruct 
    public void init() { 
    starttime = LocalDateTime.now(); 
    } 
} 

/maven)。

+0

ありがとうございました。それは確かに同様に役立つかもしれません。明日の朝にそれをテストするつもりです –

1

これを実行するAPIはおそらくありますが、コマンドラインからサーバーの開始時刻を取得できます。 (あなたがadd-user.shような何かを実行したすなわち)あなたは管理者のユーザー名とパスワードを設定していると仮定すると、あなたが実行できます。もちろん

curl --digest "http://user:[email protected]:9990/management/core-service/platform-mbean/type/runtime?operation=attribute&name=start-time" 

を、これは、Javaではありません - あなたはどちらか持っていると思いますこの上でSystem.execを実行するか、HttpClientのようなものを使用します。さらに、大きな問題は、管理者のユーザー名とパスワードをコードで使用できるようにしなければならないことです。

Wildfly HTTP Management Docsは、小さなサンプルのJavaスニペットでもう少し詳しく説明します。

EDIT: 申し訳ありません - 展開時にサーバーが再起動するとは限りません。起動時に何かを実行しているの他の回答よりも難しいと思われること、しかし

curl --digest "http://user:[email protected]:9990/management/deployment/test-1.0-SNAPSHOT.war/?operation=attribute&name=enabled-time" 

:あなたはしてWebアプリケーションの展開時間を得ることができます。 Webアプリケーションのデプロイメント時間は表示されません。サーバーの再起動時にその時間をどこかに保存する必要があるからです。

+0

私のアプリケーションの新しいバージョンを展開するためにサーバ全体を再起動しないでください、私はそれが自動的に新しいビルドを公開してからモジュールを再起動するようにしてください。あなたのアプローチは、サーバーの開始時間ではなく、サーバーの開始時間を表示するだけです。 –

関連する問題