legacy-knowledge-base
公開されました Jul. 2, 2025

Extプラグインでweb.xmlに追加する

投稿者

Liferay Support

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

Liferay DXPでExtプラグインを使用するためのサポートされているユースケースは、Liferay DXPの web.xml ファイルに追加機能を追加することです。 始める前に、一般化された Extプラグインでのカスタマイズ チュートリアルを確認してください。

例として、Liferay DXPの既存の web.xml ファイルに追加するExtプラグインのサンプルを作成します (例えば、 /tomcat-[version]/webapps/ROOT/WEB-INF フォルダ)。 Liferay DXPの起動時にコンソールに新しいプリントアウトを追加します。

  1. Plugins SDKの /ext フォルダに移動し、以下のコマンドを実行します。

    create.[bat|sh]  add-printout "Add Printout"
    

    Ext プラグインが生成され、Plugins SDK の /ext フォルダに、割り当てた名前で -ext (例: add-printout-ext) と続いて存在します。

  2. 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");
    
  3. サーブレットのコンテキストイベントを定義したので、それをリッスンするリスナーを web.xml に追加する必要があります。 docroot/WEB-INF/ext-web/docroot/WEB-INF フォルダで、デフォルトで生成された web.xml ファイルを開きます。

  4. タグの間に以下のタグを追加します。

    <listener>
        <listener-class>com.liferay.portal.servlet.context.ExtAddEntryWebXmlPortalContextLoaderListener</listener-class>
    </listener>
    

素晴らしい! Extプラグインがデプロイされると、Liferay DXPインストールは のServletContextListener インスタンスを作成し、カスタムサーブレットコンテキストイベントを初期化します。 このイベントは、 web.xml ファイルによって認識され、Liferay DXPインストールに新しい機能が追加されます。 プラグインのデプロイ セクションの指示に従ってください。

did-this-article-resolve-your-issue

legacy-knowledge-base