扩展BackofficeCockpitUserService

2020-09-15 17:41发布

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

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


我正在尝试从我的加速器backoffice扩展扩展类BackofficeCockpitUserService。

问题在于该类位于backoffice扩展名的web文件夹内。 当我尝试扩展它并从我的后台扩展中的普通src文件夹中对其进行编译时,出现以下编译错误

  1. C:\ Z \ BAT \ hybris \ bin \ custom \ bat \ batbackoffice \ src\ com \ sap \ cd \ bat \ user \ BatBackofficeCockpitUserService.java中的错误(在第3行)
      导入com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService;
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  导入com.hybris.backoffice.cockpitng无法解析在此处输入代码
  

将后台办公扩展名正确添加到我的后台办公扩展的extensioninfo.xml中的要求中:

 < requires-extension name =" backoffice"/>
  

如何修复该类的编译,以便它可以找到我要扩展的BackofficeCockpitUserService类?

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

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


我正在尝试从我的加速器backoffice扩展扩展类BackofficeCockpitUserService。

问题在于该类位于backoffice扩展名的web文件夹内。 当我尝试扩展它并从我的后台扩展中的普通src文件夹中对其进行编译时,出现以下编译错误

  1. C:\ Z \ BAT \ hybris \ bin \ custom \ bat \ batbackoffice \ src\ com \ sap \ cd \ bat \ user \ BatBackofficeCockpitUserService.java中的错误(在第3行)
      导入com.hybris.backoffice.cockpitng.user.BackofficeCockpitUserService;
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  导入com.hybris.backoffice.cockpitng无法解析在此处输入代码
  

将后台办公扩展名正确添加到我的后台办公扩展的extensioninfo.xml中的要求中:

 < requires-extension name =" backoffice"/>
  

如何修复该类的编译,以便它可以找到我要扩展的BackofficeCockpitUserService类?

付费偷看设置
发送
4条回答
hongfeng1314
1楼 · 2020-09-15 18:05.采纳回答

嗨,

基类位于后台Web Spring上下文中,无法从Spring核心上下文中访问。 您必须确保扩展名具有后台性质,即extensioninfo.xml文件中包含以下行:

然后将代码添加到 backoffice/src文件夹中(因此,在您的情况下为 batbackoffice/backoffice/src)。

关于,
马辛

DafaDDDa
2楼-- · 2020-09-15 18:15

我最终使用buildcallbacks.xml文件将已编译的.class复制到ext-backoffice/backoffice/web/webroot/WEB-INF/classes文件夹

小灯塔
3楼-- · 2020-09-15 18:04

嗨Miquel,

问题出在您混合了三种不同的Spring上下文:核心上下文,后台Web上下文和我们称为小部件上下文的事实。 核心上下文很容易扩展,因为扩展的 src/文件夹中的所有内容均已存储。 后台Web上下文是从后台扩展的 web/src/文件夹(包含cockpitng库)创建的。 小部件上下文是从扩展程序的 backoffice/src/文件夹创建的。 窗口小部件上下文是后台Web上下文的子级,它是在首次向后台Web应用程序发出请求时创建的,因此在后台Web上下文已创建之后。

由于每个Web应用程序都有其自己的Web上下文,并且不同的Web上下文彼此看不到,因此,如果要从后台Web上下文扩展一个类,则必须将代码放入扩展的窗口小部件上下文中。 如果将其放在核心上下文中,您将看不到要扩展的类(核心上下文是Web上下文的父级,因此它不知道它们)。 但是小部件上下文是在Web上下文已经启动并运行并且创建并注入了所有bean之后创建的。 不幸的是,我们目前不提供在后台Web上下文中覆盖Bean的任何便捷方法。 您将必须确定将bean注入到的所有位置,然后在小部件上下文配置中使用 PropertyBeanExtender "重新注入"您的bean。

关于,
马辛

95年老男孩
4楼-- · 2020-09-15 18:11

嗨,

代码必须在 modulename/backoffice/src下。 我认为您是将您的文件放在不可见库的 modulename/src中。

干杯, Wojtek

一周热门 更多>