Liferay DXPでExt Pluginsを使用するためにサポートされているユースケースは、Liferay Digital Enterpriseの web.xml ファイルに機能を追加することです。 始める前に、一般化された Extプラグインでのカスタマイズ チュートリアルを確認してください。
決議
例として、Liferay Digital Enterprise の既存の web.xml ファイルに追加する Ext プラグインのサンプルを作成します (例えば、 /tomcat-[version]/webapps/ROOT/WEB-INF フォルダにあります)。 Liferay Digital Enterpriseの起動時にコンソールに新しいプリントアウトを追加します。
-
Plugins SDKの
/extフォルダに移動し、以下のコマンドを実行します。create.[bat|sh] add-printout "Add Printout"Ext プラグインが生成され、Plugins SDK の
/extフォルダに、割り当てた名前で-ext(例:add-printout-ext) と続いて存在します。 -
Liferay Digital Enterprise インストールが
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 Digital Enterpriseのインストールでは、 のServletContextListener インスタンスが作成され、カスタム・サーブレット・コンテキスト・イベントが初期化されます。 このイベントは、 web.xml ファイルによって認識され、Liferay Digital Enterpriseのインストールに新しい機能が追加されます。 プラグインのデプロイ セクションの指示に従って、Ext プラグインをサーバーにデプロイしてください。