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

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

written-by

Liferay Support

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

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の起動時にコンソールに新しいプリントアウトを追加します。

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

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

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

  2. 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");
    
  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 Digital Enterpriseのインストールでは、 のServletContextListener インスタンスが作成され、カスタム・サーブレット・コンテキスト・イベントが初期化されます。 このイベントは、 web.xml ファイルによって認識され、Liferay Digital Enterpriseのインストールに新しい機能が追加されます。 プラグインのデプロイ セクションの指示に従って、Ext プラグインをサーバーにデプロイしてください。

did-this-article-resolve-your-issue

legacy-knowledge-base