Java Broadleaf-扩展工作流中的自定义活动问题
我通过添加新活动实现了订单工作流的扩展。我需要此活动来使用我在core中实现的新服务(Java Broadleaf-扩展工作流中的自定义活动问题,java,spring,autowired,broadleaf-commerce,Java,Spring,Autowired,Broadleaf Commerce,我通过添加新活动实现了订单工作流的扩展。我需要此活动来使用我在core中实现的新服务(ExterfaceService) 问题是我能够将exterfaceservice注入到其他几个控制器和其他服务中,但一旦我将其添加到新活动中,服务器就无法启动,出现以下异常: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'extInterfaceService' is def
ExterfaceService
)
问题是我能够将exterfaceservice
注入到其他几个控制器和其他服务中,但一旦我将其添加到新活动中,服务器就无法启动,出现以下异常:
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);
我注意到,上下文对象在控制器和活动中是不同的。该bean位于控制器中检索到的上下文中,但活动中的上下文没有该bean!这怎么可能呢
如果手动创建对象的新实例,应用程序工作正常。我完全被幕后发生的魔法迷住了。我通过在这个文件中添加以下行解决了这个问题:site/src/main/webapp/WEB-INF/applicationContext.xml。这些行已经存在于站点/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"/>