現在表示中:

AEM の Externalizer は、プログラムによってリソースパス(例:/path/to/my/page)を外部の絶対 URL(例:http://www.mycompany.com/path/to/my/page)に変換できるようにする OSGi サービスであり、その変換はパスに事前設定済みの DNS をプレフィックスとして付けることで実現します。

インスタンスが Web レイヤーの背後で実行されている場合、自身の外部向け URL がわかりません。また、リンクをリクエストスコープの範囲外で作成する必要がある場合があります。これらの理由で、このサービスは、そのような外部 URL を設定して組み立てるための一元化された場所を提供します。

このページでは、Externalizer サービスの設定方法と使用方法について説明します。詳しくは、関連する Javadoc を参照してください。

Externalizer サービスの設定

Externalizer サービスでは、プログラムによってリソースパスにプレフィックスを付けるために使用可能な複数のドメインを一元的に定義できます。各ドメインは一意の名前によって識別され、その名前を使用して、プログラムからそのドメインを参照できます。

Externalizer サービスのドメインマッピングを定義するには:

  1. ツールから設定マネージャー、Web コンソールの順に移動するか、"http://<host>:<port>/system/console/configMgr" と入力します。

  2. Day CQ Link Externalizer」をクリックして設定ダイアログボックスを開きます。

    注意:

    この設定に直接アクセスするためのリンクは、http://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl です。

    chlimage_1
  3. ドメインマッピングを定義します。マッピングは、次のようなコード内でドメインを参照するために使用できる一意の名前、スペース、ドメインにより構成されます。
    <unique-name> [scheme://]server[:port][/contextpath]。各項目の意味は次のとおりです。

    • scheme は、通常は http または https ですが、ftp などになる場合もあります。必要に応じて、https リンクを適用する場合は https を使用します。URL の外部化を求めたときにクライアントコードでスキームがオーバーライドされていない場合は、https が使用されます。
    • server はホスト名です(ドメイン名または IP アドレス)。
    • port(オプション)はポート番号です。
    • contextpath(オプション)は、AEM が異なるコンテキストパスの下の Web アプリケーションとしてインストールされている場合に限り設定します。

    例:production http://my.production.instance
    次のマッピング名は事前定義されており、AEM で使用されるので、常に設定されている必要があります。

    • local - ローカルインスタンス
    • author - オーサリングシステムの DNS
    • publish - 公開 Web サイトの DNS

    注意:

    カスタム設定によって、「production」、「staging」などの新しいカテゴリや、「my-internal-webservice」などの AEM 以外の外部システムでも追加できます。このような設定は、プロジェクトのコードベースの様々な場所でそのような URL をハードコーディングするのを避けるために有効です。

  4. Save」をクリックして変更を保存します。

注意:

アドビでは、この設定をリポジトリに追加することをお勧めします。

Externalizer サービスの使用

ここでは、Externalizer サービスの使用方法に関するいくつかの例を紹介します。

 

JSP で Externalizer サービスを取得する:

Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);

 

「publish」ドメインを付与してパスを外部化する:

String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";

ドメインが「publish http://www.website.com」にマッピングされるとすると、myExternalizedUrl は「http://www.website.com/contextpath/my/page.html」という値になります。

 

「author」ドメインを付与してパスを外部化する:

String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";

ドメインが「author http://author.website.com」にマッピングされるとすると、myExternalizedUrl は「http://author.website.com/contextpath/my/page.html」という値になります。

 

「local」ドメインを付与してパスを外部化する:

String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";

ドメインが「local http://publish-3.internal」にマッピングされるとすると、myExternalizedUrl は「http://publish-3.internal/contextpath/my/page.html」という値になります。

 

他の例については、関連する Javadoc を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー