我正在运行Hybris 6.6,并正在构建一个新的插件,基本上是一个控制器和相应的JSP。但是,在运行时,Hybris找不到控制器bean并在店面文件夹中搜索JSP(因为JSP在店面插件文件夹中,所以它不存在)。
我使用extgen创建了插件,然后使用ant将其安装在店面中。
步骤:
我已经调试了代码,当Hybris尝试通过getBeanFactory()。contains(controller)查找是否存在控制器时,它返回false。如果我查看bean工厂返回的bean列表,则控制器的bean不存在。
有什么线索吗?我什至尝试在-web-spring.xml上显式创建控制器bean,但未做任何更改。
谢谢
答案 0 :(得分:4)
确定
GenericCMSAddOnComponentController
或AbstractCMSAddOnComponentController
。使用
注释控制器 @Controller(YourComponentController)
@RequestMapping(value="/view/YourComponentController")
将jsp添加到*addon/web/webroot/*/view/*/cms/yourcomponentname.jsp
。
请参阅AbstractCMSAddOnComponentController的getView方法获取路径
*-web-spring.xml
应该位于资源文件夹/路径中
*-web-spring.xml
中为控制器添加组件扫描
<context:component-scan base-package="my.path.controllers"/>
*-web-spring.xml
在其他WebSpringConfigs属性中。请参阅您的插件project.properties
喜欢
myCustomstorefront.additionalWebSpringConfigs.MyAddonName=classpath:/XXX/web/spring/*-web-spring.xml
答案 1 :(得分:0)
除了HybrisHelp的出色指示之外,遇到此问题的其他人可能还需要将其添加到* -web-spring.xml
scope-resolver="de.hybris.platform.spring.IgnoreTenantScopeMetadataResolver"
所以看起来像
<context:component-scan base-package="my.path.controllers" scope-resolver="de.hybris.platform.spring.IgnoreTenantScopeMetadataResolver" />
只有具有此属性,控制器才为我加载。