【发布时间】:2020-11-02 08:52:05
【问题描述】:
我正在 AEM 中编写一个 OSGI 服务组件。 我想在服务组件的activate方法中获取当前域名。
目前,我正在编写一个构造方法,从引用类/服务/模型/servlet 获取请求以初始化“请求”类对象并使用此请求对象获取服务器名称
private SlingHttpServletRequest request;
private String domainName;
@Override
public void construct(final SlingHttpServletRequest request) {
this.request = request;
}
@Override
public void setDomainName(){
this.domainName = request.getServerName();
}
而this.domainName用于多种服务方法实现。
所以,我必须调用 2 个额外的服务方法,
- 构造——初始化全局
request对象 - setDomainName - 初始化
domainName全局对象以供所有其他服务方法使用
是否有办法在activate方法中获取domainName,这样我就不用调用以上两个方法来使用服务了。
注意:- 我无法为域名创建 OSGI 配置,因为该域名已被用作 关键属性 来识别给定工厂的 OSGI 配置
【问题讨论】: