Liferay DXPでExtプラグインを使用するためのサポートされているユースケースは、Liferay DXPの web.xml
ファイルに追加機能を追加することです。 始める前に、一般化された Extプラグインでのカスタマイズ チュートリアルを確認してください。
例として、Liferay DXPの既存の web.xml
ファイルに追加するExtプラグインのサンプルを作成します (例えば、 /tomcat-[version]/webapps/ROOT/WEB-INF
フォルダ)。 Liferay DXPの起動時にコンソールに新しいプリントアウトを追加します。
-
Plugins SDKの
/ext
フォルダに移動し、以下のコマンドを実行します。create.[bat|sh] add-printout "Add Printout"
Ext プラグインが生成され、Plugins SDK の
/ext
フォルダに、割り当てた名前で-ext
(例:add-printout-ext
) と続いて存在します。 -
Liferay DXP インストールが
web.xml
の新しい機能を認識するためには、 ServletContextListener インターフェイスを実装したクラスを作成する必要があります。 このクラスは、新しい機能を追加するサーブレットのコンテキストイベントを初期化します。/docroot/WEB-INF/ext-impl/src
フォルダに、新しいクラスを配置したいパッケージ名を表すフォルダ構造を作成します (例:com/liferay/portal/servlet/context
)。 次に、新しいJavaクラスを作成します。package com.liferay.portal.servlet.context; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ExtAddEntryWebXmlPortalContextLoaderListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent servletContextEvent) { } public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("EXT_ADD_ENTRY_WEBXML_INSTALLED_SUCCESSFULLY"); }
上記のクラスには、サーブレットのコンテキストイベントを初期化したり破棄したりする 2 つのメソッドが含まれています。 ポータルコンテキストの初期化時に、新しい
web.xml
'の機能を必ず追加してください。 Extプラグインのインストールを確認するプリントアウトを追加するために、contextInitialized(...)
メソッドでシンプルなprint文を定義しました。System.out.println("EXT_ADD_ENTRY_WEBXML_INSTALLED_SUCCESSFULLY");
-
サーブレットのコンテキストイベントを定義したので、それをリッスンするリスナーを
web.xml
に追加する必要があります。docroot/WEB-INF/ext-web/docroot/WEB-INF
フォルダで、デフォルトで生成されたweb.xml
ファイルを開きます。 -
タグの間に以下のタグを追加します。
<listener> <listener-class>com.liferay.portal.servlet.context.ExtAddEntryWebXmlPortalContextLoaderListener</listener-class> </listener>
素晴らしい! Extプラグインがデプロイされると、Liferay DXPインストールは のServletContextListener
インスタンスを作成し、カスタムサーブレットコンテキストイベントを初期化します。 このイベントは、 web.xml
ファイルによって認識され、Liferay DXPインストールに新しい機能が追加されます。 プラグインのデプロイ セクションの指示に従ってください。