扩展插件并使用其类

时间:2019-07-11 12:19:08

标签: java hybris

我有以下情况: 我想在自定义扩展中的Assistantservicestorefront中使用一种方法,但由于蚂蚁在improvedservicestorefront中找不到我正在寻找的类,因此它始终无法编译。

我认为也许扩展实际上无法访问扩展程序,所以我专门创建了一个自定义加载项来访问我想要的加载项。

它仍然失败。

有什么想法吗?

我尝试过:

我已经根据extensioninfo.xml中的要求定义了它

试图创建自定义插件。

代码: 这是我的DummyAssistedServiceComponent

@Resource
private GkvUserService userService;

@Resource(name = "assistedServiceAgentAuthoritiesManager")
private DefaultAssistedServiceAgentAuthoritiesManager authoritiesManager;

public void refreshAuthorities() {
    String userId = userService.getCurrentUser().getUid();
    authoritiesManager.addCustomerAuthoritiesToAgent(userId);
}

错误输出:

/opt/company/Project/hybris/bin/project/projectassistedserviceaddon/src/de/companysystems/project/assistedserviceaddon/controllers/DummyAssistedServiceComponent.java:5: 

error: package de.hybris.platform.assistedservicestorefront.security.impl does not exist

编辑:

好的,我发现了我的第一个错误。我把课程放在错误的文件夹中。

我将其放入 \ src ,而不是 \ acceleratoraddon \ web \ src

我搬走了教室,突然间它没问题地编译了。

但是还有另一个问题:

我创建了自定义插件是因为我想访问另一个插件中的方法以在自定义扩展中使用它。但似乎不可能。

Hybris似乎不允许访问扩展程序中的插件。 只允许加载项访问并覆盖它们:(

有什么想法吗? 否则,我必须采用我想使用的方法,然后再次编写。

1 个答案:

答案 0 :(得分:0)

如果您通过The AddOn Approach in Hybris,那将消除您的疑问。

AddOn概念旨在在不影响其核心代码库的情况下扩展Accelerator店面。为此,系统会在构建阶段自动将文件夹和文件复制到目标店面扩展。

构建阶段完成后,目标扩展(店面)包含以下新文件夹:

  • web / addonsrc ,其中包含每个已安装插件的源代码。这会自动编译。
  • web / webroot / WEB-INF / addons ,其中包含所有前端组件,例如图像,JSP文件,HTML文件和TAG文件。

这意味着如果您想覆盖/扩展任何现有的插件功能,则必须创建一个自定义插件并将依赖项添加到要覆盖的现有插件。这样该系统将在您的自定义插件之前加载现有插件。另外,不要忘记将自定义插件安装到店面。