gpt4 book ai didi

java - 如何使自定义 Alfresco AMP 操作失败?

转载 作者:行者123 更新时间:2023-11-30 06:11:09 24 4
gpt4 key购买 nike

我为 Alfresco 代码库开发了自定义 AMP 操作。我想让 Alfresco 明白,如果不满足某些条件,操作就会失败,因此会在弹出窗口中显示失败消息。

我在 executeImpl 方法中编写了以下内容,但如果不满足条件,操作不会失败。

@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
if (condition) {
// Do something
} else {
((ActionImpl) action).setExecutionEndDate(new Date());
((ActionImpl) action).setExecutionStatus(ActionStatus.Failed);
((ActionImpl) action).setExecutionFailureMessage("Action is failed");
throw new RuntimeException("Action is failed");
}
}

Alfresco认为 Action 执行成功。是的,我在 share-config-custom.xml 中定义了失败和成功消息。有什么方法可以管理这种情况下的操作吗?

最佳答案

您不应该(需要)自己设置 ActionImpl 类的属性 - 这些是留给 ActionService 处理的实现细节。

此外,您不应该抛出基本的 RuntimeException。在许多情况下,Alfresco 不会以任何方式处理基本的 RuntimeException,而只是将其传播到调用链中。然后,它取决于您调用的 HTTP/web 脚本 API,如果它实际上触发了共享的“失败”消息。

要抛出的适当异常是 ActionServiceException(它是 RuntimeException 的子类)。

要在 Share 中显示错误消息,您还需要配置文档库操作(我假设您正在使用)以包含“failureMessage”参数(对于静态消息,您可以在其中使用 I18n消息键)或“失败”参数(用于动态处理,您必须在 XML 配置中提供回调函数)。

关于java - 如何使自定义 Alfresco AMP 操作失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com