【问题标题】:JSP / Controller not found for custom component in Hybris addon在 Hybris 插件中找不到自定义组件的 JSP/控制器
【发布时间】:2018-08-27 08:29:09
【问题描述】:

我正在运行 Hybris 6.6 并正在构建一个新插件,它基本上是一个控制器和相应的 JSP。然而,在运行时,Hybris 没有找到控制器 bean,而是在店面文件夹中搜索 JSP(它不存在,因为 JSP 在店面插件文件夹中)。

我使用 extgen 创建了插件,然后也使用 ant 将其安装在店面中。

步骤:

  • 在继承自 SimpleCMSComponent 的 -items.xml 中创建组件
  • 创建的控制器继承自 AbstractCMSController,
  • 在插件文件夹中创建了 JSP,
  • 创建组件并通过 Imped 添加到页面槽,
  • @Controller 的名称等于组件+“控制器”

我已经调试了代码,当 Hybris 尝试通过 getBeanFactory().contains(controller) 查找是否有控制器时,它返回 false。如果我查看 bean 工厂返回的 bean 列表,控制器的 bean 不存在。

关于发生了什么的任何线索?我什至尝试在 -web-spring.xml 上显式创建控制器 bean,但没有改变任何东西。

谢谢

【问题讨论】:

    标签: components hybris add-on


    【解决方案1】:

    确定

    • 您的控制器应扩展 GenericCMSAddOnComponentControllerAbstractCMSAddOnComponentController 用于内部插件的组件。
    • 用注解控制器

      @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

    【讨论】:

    • 非常感谢!它要么是 AbstractCMSAddOnController(我使用的是普通的)要么是组件扫描。
    • 我很高兴这对你有帮助!!
    • 两者都是您的问题的原因。
    • 我知道 :) 我的意思是如果其中一个在我遇到另一个之前解决了 getBeanFactory 问题:)
    【解决方案2】:

    除了 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" />
    

    只有这个属性,控制器才为我加载。

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多