5

私の問題は、Liferay を変更するたびにportal-properties(これは特に新しいポータル プロジェクトの開始時に頻繁に発生します)、ポータル全体を再起動する必要があることです。

フックを介して設定できるいくつかのプロパティと、これらの値は再デプロイ後に変更されます。また、実行時にほとんどのポータル プロパティを変更できる必要があります。

portal-ext.propertiesしかし、 Liferayポータルを再起動せずに変更を反映する方法を知っていますか?

4

6 に答える 6

5

stoldarkが述べたように、これは稼働環境ではまったく不可能です。portal.propertiesのプロパティはポータルの起動時に読み込まれるため。

ただし、開発には、JRebelのようなツールを使用できます。ここで、いくつかの手順を実行して構成します。あなたがこのツールで得る唯一の問題はそれが支払われるということです;-)

于 2012-08-13T10:20:08.607 に答える
1

これは、Liferay フォーラムでも質問されています。

https://www.liferay.com/community/forums/-/message_boards/message/800954

しかし残念ながら、ほとんどのプロパティはポータルの起動時に 1 回しか読み取られません。通常、この場合のようにプロパティー・ファイルを使用すると、この欠点があります。

これについて Liferay で開かれている問題もありますが、まだ解決されていません。

http://issues.liferay.com/browse/LEP-5579

于 2012-08-13T09:53:57.213 に答える
0

portal-ext.properties のリロードを検索して、ここにたどり着きました。OK - Liferay の機能ではありません。

だから私は好きな古いトリックを使用します:

  1. カスタムプロパティを (liferay-tomcat-home)/conf/filename.properties に配置します
  2. いつでもリロードできます

    Properties customProperties = new Properties();
    customProperties.load(new FileInputStream(new File(System.getProperty("catalina.base"), "conf/filename.properties")));
    

Liferay-Portlet-Environment でこれを試していないことを告白しなければなりませんが、このシステム プロパティ (「catalina.base」) は、少なくとも Liferay-Helper-Class を使用することによって、このコンテキストで利用できるはずです。

于 2015-12-02T14:23:48.617 に答える
0

ポータル プロパティをオーバーライドするフックを作成すると、ポータルを再起動せずにフックをデプロイするだけでプロパティを変更できます。

フックを使用してすべてのプロパティを変更できるわけではないことに注意してください。変更できるもののリストについては、https ://docs.liferay.com/portal/6.2/definitions/ を確認してください。

于 2015-09-23T21:41:16.723 に答える
0

一部の Liferay クラスは、静的フィールド定数を初期化するときにプロパティを読み取ります。例えば:

public static final boolean ENABLED = GetterUtil.getBoolean(
    PropsUtil.get(DynamicCSSFilter.class.getName()));

基本的に、(たとえば、コントロール パネルのスクリプトを介して) プロパティを再読み込みすることは可能ですが、これらの静的定数はすべて残ります。

于 2018-08-14T11:42:50.290 に答える