【发布时间】:2016-11-26 06:52:42
【问题描述】:
我有一个在 AEM / Apache Felix 内的 OSGi 包中运行的吊索 Servlet(和各种其他组件)。
例如:
@SlingServlet(
label = "XXXX - SSO Post Servlet",
metatype = true,
methods = {"POST"},
name = "XXXX.core.components.SlingPostServlet",
paths = {"/services/SSOPost"}
)
public class SlingPostServlet extends SlingAllMethodsServlet {
//etc
我的组件按预期工作,maven 能够很好地构建、捆绑和部署整个项目。
我的问题是,在我重新启动整个 AEM 实例之前,我的组件更新不会被激活。我已经尝试过刷新 OSGi 包、重新启动包以及尽可能多的可能的 UI 操作来实现此效果,但没有运气。
有什么想法吗?我希望它是一个我不知道的简单配置问题/按钮。
谢谢。
【问题讨论】:
-
你在安装更新包的时候看到/system/sling/installer/jcr/pauseInstallation这个路径下的节点了吗?
-
@SharathMadappa 不,安装前后该路径下根本没有节点。
-
构建更新后的代码后,打开JcrInstaller的配置并保存(目的是让JcrInstaller的activate方法触发)。这是否与重新启动实例 w.r.t 更新组件具有相同的效果?
-
您如何将捆绑包部署到实例?通过 Maven 插件还是手动?您的组件是否也有与之关联的任何 OSGI 属性?通常属性绑定到特定版本的 jar 并且可能需要通过配置管理器取消绑定以实际反映更改。
-
我们需要更多信息,什么版本的 AEM?你能在一个新的干净项目中复制这种行为吗?你能在一个新的干净实例中复制它吗?你必须开始一个消除过程来缩小问题的范围。
标签: maven osgi aem apache-felix