Broadleaf - 扩展工作流程中的自定义活动问题

时间:2015-04-04 15:12:56

标签: java spring autowired broadleaf-commerce

我通过添加新活动实现了订单工作流程的扩展。我需要此活动来使用我在核心中实现的新服务(ExtInterfaceService)。

问题是我能够将ExtInterfaceService注入到其他几个控制器和其他服务中,但是只要我将它添加到我的新Activity中,服务器就无法启动异常:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'extInterfaceService' is defined.

我不知道它是如何自动连接其他控制器/服务而不是工作流程活动的。顺便说一下,这就是我定义服务的方式。

@Service("extInterfaceService")
public class ExtInterfaceServiceImpl implements ExtInterfaceService 

我甚至通过在其中一个控制器(使用此服务)中执行以下操作以及我的扩展活动来手动连接它以查看差异:

context.getBean("extInterfaceService",ExtInterfaceService.class);

我注意到Controller和Activity中的 上下文对象是不同的 。 bean在Controller中检索的上下文中找到,但Activity中的上下文没有这个bean!怎么可能呢?

如果我手动创建对象的新实例,则应用程序正常工作。我完全迷失在幕后发生的魔力。

1 个答案:

答案 0 :(得分:1)

我通过在此文件中添加以下行来解决此问题: site / src / main / webapp / WEB-INF / applicationContext.xml 。这些行已经存在于 site / src / main / webapp / WEB-INF / applicationContext-servlet.xml 中,但只有在将其添加到 applicationContext.xml 之后才能生效。

<context:component-scan base-package="org.broadleafcommerce.common.web"/>
<context:component-scan  base-package="org.broadleafcommerce.profile.web.controller"/>
<context:component-scan base-package="org.broadleafcommerce.profile.web.core.service.login"/>
相关问题