2016-06-20 2 views
0

У меня есть BroadLeaf demo application и попытался изменить с помощью this manual. Я добавил класс вроде этого:Broadleaf: Нет bean с именем 'blMainEntityActionsExtensionManager' определено

package com.myco.admin.web.controller; 
@Controller 
@RequestMapping("/test") 
public class MyController extends AdminAbstractController { 

    @RequestMapping(value = "", method = RequestMethod.GET) 
    public String test(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception { 
     // This is expected by the modules/emptyContainer template, this is a custom template that gets included into the body 
     model.addAttribute("customView", "views/test"); 

     // ensure navigation gets set up correctly 
     setModelAttributes(model, "test"); 

     // gets the scaffolding set up to display the template from the customView attribute above 
     return "modules/emptyContainer"; 
    } 
} 

И когда я пытаюсь запустить admin.war, я вижу следующее исключение:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'blMainEntityActionsExtensionManager' is defined 
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1208) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:434) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 
    at org.broadleafcommerce.common.web.extensibility.MergeContextLoader.contextInitialized(MergeContextLoader.java:148) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'blMainEntityActionsExtensionManager' is defined 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) 
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:461) 
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:435) 
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:559) 
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:305) 
    ... 23 more 

Что случилось с этим примером? Думаю, он должен работать из коробки.

ответ

2

Исключение будет разрешится, если добавить следующие строки в ApplicationContext-admin.xml:

<bean id="blMainEntityActionsExtensionManager" class="org.broadleafcommerce.openadmin.web.controller.MainEntityActionsExtensionManager" /> 
<bean id="blAdminAbstractControllerExtensionManager" class="org.broadleafcommerce.openadmin.web.controller.AdminAbstractControllerExtensionManager" /> 
0

Стектура, как представляется, указывает, что вы не зарегистрировали компонент/контроллер в файле applicationContext-servlet-admin.xml. Убедитесь, что приложение администратора известно о ваших новых контроллерах, добавив что-то подобное в файл applicationContext-servlet-admin.xml.

<context:component-scan base-package="com.myco.admin.web.controller" /> 
+0

Это не имеет никакого значения – Antonio