我只是尝试使用实例和实现添加我的自定义 ORMObjectListener 的注册,但它不起作用。我可以看到所有系统 ORMObjectListener-s 都注册在盒式 onReadyHook() 方法中,但我喜欢尝试将它们注册到组件框架中。
我在 implementations.component 中添加了以下内容:
<implementation name="ProductPODeleteListener" class="hr.a1.orm.product.internal.ProductPODeleteListener" start="start" stop="stop" factory="JavaBeanFactory"/>
并遵循instances.component:
<instance name="ProductPODeleteListener" with="ProductPODeleteListener" scope="global"/>
这是 ProductPODeleteListener 的启动方法:
public synchronized void start() {
productFactory.addObjectListener(this);
}
但是我的自定义侦听器未注册(从不调用 start 方法)。我可以在日志文件中看到启动时加载了实现:
"Adding implementation ProductPODeleteListener to configuration bc_a1_orm."
我做错什么了吗?
也许缺少的是对 componentMgr.getGlobalComponentInstance("ProductPODeleteListener") 的调用?如此处所述: https: //support.intershop.com/kb/index.php/Display/25G731#Concept-ComponentFramework-InGeneral -> “ComponentFW 将在第一次访问时实例化所有定义的实例。” 我认为不可能向组件框架注册侦听器,因为这些侦听器需要在服务器启动时注册。那是对的吗?
感谢帮助!