[英]JSP / Controller not found for custom component in Hybris addon
我正在运行 Hybris 6.6 并且正在构建一个新的插件,它基本上是一个控制器和相应的 JSP。 然而,在运行时,Hybris 没有找到控制器 bean 并在店面文件夹中搜索 JSP(它不存在,因为 JSP 位于店面插件文件夹中)。
我使用 extgen 创建了插件,然后也使用 ant 将其安装在店面中。
脚步:
我已经调试了代码,当 Hybris 尝试通过 getBeanFactory().contains(controller) 查找是否有控制器时,它返回 false。 如果我查看 bean 工厂返回的 bean 列表,则控制器的 bean 不在那里。
关于发生了什么的任何线索? 我什至试图在 -web-spring.xml 上显式创建控制器 bean,但没有改变任何东西。
谢谢
确保
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
应该在 additionalWebSpringConfigs 属性中配置。 参考你的插件 project.properties
像myCustomstorefront.additionalWebSpringConfigs.MyAddonName=classpath:/XXX/web/spring/*-web-spring.xml
除了 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" />
只有这个属性,控制器才为我加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.