Aem CQ5。如何知道执行代码的发布服务器的主机名?

Aem CQ5。如何知道执行代码的发布服务器的主机名?,aem,hostname,author,publisher,Aem,Hostname,Author,Publisher,为了解决主题中提到的问题,我编写了以下代码: String link = externalizer.publishLink(resolverFactory.getAdministrativeResourceResolver(null),""); 我不能检查它,因为我只有作者机器,但下面的代码将只在发布服务器上执行 在制作方面,我们有几个出版商。我想为每个出版商获得不同的结果 我的代码可以在发布服务器上使用吗?您是否为pid-com.day.cq.commons.impl.Externalize

为了解决主题中提到的问题,我编写了以下代码:

String link = externalizer.publishLink(resolverFactory.getAdministrativeResourceResolver(null),"");
我不能检查它,因为我只有作者机器,但下面的代码将只在发布服务器上执行

在制作方面,我们有几个出版商。我想为每个出版商获得不同的结果


我的代码可以在发布服务器上使用吗?

您是否为pid-com.day.cq.commons.impl.ExternalizerImpl定义了sling:osgiConfig? 您也可以在OSGi控制台[1]中直接配置它

在配置中,您可以提供类似“发布”的dns名称

如果多个发布实例有多个域名,请为此服务定义sling:osgiConfig节点,并将其附加到这些发布实例的“运行模式”。这应该行得通

另一方面,Externalizer服务通常用于非HTML内容,如电子邮件等。在HTML中,您可以使用相对URL


[1]

您还可以轻松启动发布实例来测试代码:安装Adobe Experience Manager实例在我有多个发布者的情况下,无法在本地重现这种情况。在publisher本地,我得到了—我不想看到localhost—我想看到主机名