gpt4 book ai didi

java - CommandExecuteIn 后台抛出 "Not an (encodable) value"错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:27 24 4
gpt4 key购买 nike

我目前正在尝试在后台实现文件导出,以便用户可以在下载文件时执行一些操作。

我使用了 apache isis CommandExexuteIn:Background 操作属性。但是,我收到了一个错误“不是(可编码)值”,这是 ScalarValueRenderer 类抛出的错误。

这就是我的方法:

@Action(semantics = SemanticsOf.SAFE,
command = CommandReification.ENABLED)
commandExecuteIn = CommandExecuteIn.BACKGROUND)
public Blob exportViewAsPdf() {
final Contact contact = this;
final String filename = this.businessName + " Contact Details";

final Map<String, Object> parameters = new HashMap<>();
parameters.put("contact", contact);

final String template = templateLoader.buildFromTemplate(Contact.class, "ContactViewTemplate", parameters);
return pdfExporter.exportAsPdf(filename, template);
}

我认为该错误与该命令实际上并未调用该操作而是返回持久的后台命令有关。

这个实现实际上适用于没有返回类型的方法。我错过了什么?或者有没有办法实现后台命令并得到预期的结果?

最佳答案

有趣的用例,但这不是我在实现框架的这一部分时所预期的,所以我对它不起作用并不感到惊讶。显然,您在这里收到的错误消息非常模糊,所以我提出了一个 JIRA ticket看看我们是否至少可以改进这一点。

我有兴趣知道您认为框架应该在这里提供什么样的用户体验?

Estatio在我们开发的应用程序中(在过去几年中,该应用程序已经添加了许多添加到框架中的功能),我们有一个有点类似的要求,即从报告服务器获取 PDF(需要 5 到 10 秒),然后下载它们。这是针对购物中心的所有租户的,因此一次可能会生成 5 到 50 个。我们采用的设计是将渲染移至后台命令(类似于代码片段中的 templateLoader.buildFromTemplate(...) 和 pdfExporter.exportAsPdf(...) 方法调用,并通过 document module 将输出捕获为文档。然后,我们使用 pdfbox addon 将所有文档 PDF 拼接在一起,作为单个可下载的 PDF 进行打印。

希望这能为您提供一些以不同方式支持您的用例的想法

谢谢丹

关于java - CommandExecuteIn 后台抛出 "Not an (encodable) value"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44425554/

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