In AEM, il Externalizer è un servizio OSGI che consente di trasformare programmaticamente un percorso di risorse (ad es. /path/to/my/page
) in un URL esterno e assoluto (ad esempio, https://www.mycompany.com/path/to/my/page
), anteponendo il percorso a un DNS preconfigurato.
Poiché un’istanza non può conoscere il relativo URL visibile esternamente se è in esecuzione dietro un livello Web e poiché a volte è necessario creare un collegamento all’esterno dell’ambito della richiesta, il servizio fornisce una posizione centrale per configurare tali URL esterni e crearli.
In questa pagina viene illustrato come configurare il servizio Externalizer e come utilizzarlo. Per ulteriori dettagli, fare riferimento al Javadocs.
Il servizio Externalizer consente di definire a livello centrale più domini che possono essere utilizzati per il prefisso programmatico dei percorsi delle risorse. Ogni dominio è identificato da un nome univoco utilizzato per fare riferimento al dominio a livello di programmazione.
Per definire un mapping di dominio per il servizio Externalizer:
Andate alla gestione della configurazione tramite Strumenti, quindi Console Web oppure immettete https://<host>:<port>/system/console/configMgr.
Fare clic su Day CQ Link Externalizer per aprire la finestra di dialogo di configurazione.
Il collegamento diretto alla configurazione è https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
Definire un mapping di dominio: un mapping è costituito da un nome univoco che può essere utilizzato nel codice per fare riferimento al dominio, a uno spazio e al dominio:
<unique-name> [scheme://]server[:port][/contextpath]
, dove:
Esempio: production https://my.production.instance
I seguenti nomi di mappatura sono predefiniti e devono sempre essere impostati come AEM dipende da essi:
Una configurazione personalizzata consente di aggiungere una nuova categoria, ad esempio "produzione", "pre-produzione" o anche sistemi esterni non AEM come "il mio servizio Web interno" ed è utile per evitare che tali URL vengano codificati in diverse aree della base di codice di un progetto.
Fare clic su Salva per salvare le modifiche.
Adobe consiglia di aggiungere la configurazione al repository.
In questa sezione sono riportati alcuni esempi di utilizzo del servizio Externalizer.
Per ottenere il servizio Externalizer in un JSP:
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
Per esternalizzare un percorso con il dominio 'pubblica':
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page?lang=it") + ".html";
Presupponendo che la mappatura del dominio " publish https://www.website.com
", myExternalizedUrl finisca con il valore " https://www.website.com/contextpath/my/page.html
".
Per esternalizzare un percorso con il dominio 'author':
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page?lang=it") + ".html";
Presupponendo che la mappatura del dominio " author https://author.website.com
", myExternalizedUrl finisca con il valore " https://author.website.com/contextpath/my/page.html
".
Per esternalizzare un percorso con il dominio 'locale':
String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page?lang=it") + ".html";
Presupponendo che la mappatura del dominio " local https://publish-3.internal
", myExternalizedUrl finisca con il valore " https://publish-3.internal/contextpath/my/page.html
".
Per ulteriori esempi, vedere Javadocs.