[已解决] Hybris 6.3中的CMS组件控制器无法正常工作

2020-09-22 20:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我在Hybris中创建C...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我在Hybris中创建CMS组件,尝试使用控制器时遇到问题。 我创建了一个运行以下命令的新插件:

 蚂蚁extgen -Dinput.template = yaddon -Dinput.name = mediaaddon -Dinput.package = com.myapp.mediaaddon
  

1)我使用

在我的店面中安装了插件
  ant addoninstall -Daddonnames =" mediaaddon" -DaddonStorefront.yb2bacceleratorstorestore =" MyB2BStorefront"
  

2)我在XML文件 mediaaddon-items.xml

中创建了模型

3)我确实做了 antant

4)然后,我在 mediaaddon/acceleratoraddon/web/src/com/myapp/controllers/cms/CMSVideoComponentController.java ,并显示以下代码:

 /**
   *
   */
  包com.myapp.controllers.cms;
 
  导入javax.servlet.http.HttpServletRequest;
 
  导入de.hybris.platform.acceleratorstorefrontcommons.controllers.cms.AbstractCMSComponentController;
 
  导入org.apache.commons.lang.StringUtils;
  导入org.apache.log4j.Logger;
  导入org.springframework.stereotype.Controller;
  导入org.springframework.ui.Model;
  导入org.springframework.web.bind.annotation.RequestMapping;
  导入org.springframework.web.bind.annotation.RequestMethod;
 
  导入com.mycompany.model.CMSVideoComponentModel;
  导入com.mycompany.constants.MediaaddonConstants;
 
 
  @Controller(" CMSVideoComponentController")
  @RequestMapping(值= MediaaddonConstants.Actions.Cms.CMSVideoComponent)
  公共类CMSVideoComponentController扩展了AbstractCMSComponentController 
  {
 
      私有静态最终Logger LOG = Logger.getLogger(CMSVideoComponentController.class);
 
     //@Resource(name =" modelService")
     //私人ModelService modelService;
 
      @Override
      受保护的void fillModel(最终HttpServletRequest请求,最终模型模型,最终CMSVideoComponentModel组件)
      {
          LOG.info("我传入CMSVideoComponentController fillmodel方法");
      }
 
      @RequestMapping(值="/img/testController",方法= RequestMethod.GET)
      公共无效的testController()
      {
      }
 
      @Override
      受保护的String getView(最终CMSVideoComponentModel组件)
      {
         //记录少量信息以进行调试
          LOG.info(" >>>>> CMSVideoComponentController.getView(最终T组件)");
          LOG.info(" getTypeCode(component):" + getTypeCode(component));
          LOG.info(" StringUtils.lowerCase(getTypeCode(component)):" + StringUtils.lowerCase(getTypeCode(component)));
          LOG.info(" MediaaddonConstants.Views.Cms.ComponentPrefix:" + MediaaddonConstants.Views.Cms.ComponentPrefix);
          LOG.info(" return:" + MediaaddonConstants.Views.Cms.ComponentPrefix + StringUtils.lowerCase(getTypeCode(component)));
          LOG.info(" <--------------------------------------------  ----------->");
 
         //根据组件类型构建一个jsp响应
          返回MediaaddonConstants.Views.Cms.ComponentPrefix + StringUtils.lowerCase(getTypeCode(component));
      }
 
    /**
       * @参数模型服务
       *要设置的modelService
       */
     //public void setModelService(final ModelService modelService)
     //{
     //this.modelService = modelService;
     //}
  }
  

6)而我的常数就像

 公共界面视图
      {
          接口Cms//NOSONAR
          {
              字符串ComponentPrefix =" addon:/Mediaaddon/cms/"; //NOSONAR
          }
          //隐藏的代码
           }
  

7),而我的JSP位于 mediaaddon/acceleratoraddon/web/webroot/WEB-INF/views/sensitive/cms/cmsvideocomponent.jsp

8)然后,我全部清理

9)我运行 hybrisserver.bat 并等待 <罢工> 时间过长 用于服务器启动。

10)我将组件添加到了CMSCockpit中,并将所有其他步骤添加到了主页中。

现在这里发生两个问题:

  1. 访问主页时,收到以下错误:处理组件标签时出错。 currentComponent [CMSVideoComponentModel(8796191360060 @ 3)]例外:未找到文件"/WEB-INF/views/response/cms/cmsvideocomponent.jsp" ,我意识到该文件已在店面中的以下位置复制:< strong>/WEB-INF/views/addons/mediaaddon/cms/cmsvideocomponent.jsp

  2. 我的控制器已复制到 web/addonsrc/mediaaddon/br/com/targetit/controllers/cms/CMSVideoComponentController.java

  3. 的店面中

我几天试图使我的控制器正常工作(因为未在控制台中写入控制器的日志)并将我的jsp文件复制到正确的路径。 我试图将值从控制器传递到jsp,但它不起作用。

任何人都可以帮助您了解实际情况吗?