[英]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.