Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CommandExecuteIn后台抛出一个;非(可编码)值“;错误_Java_Isis_Command Execution - Fatal编程技术网

Java CommandExecuteIn后台抛出一个;非(可编码)值“;错误

Java CommandExecuteIn后台抛出一个;非(可编码)值“;错误,java,isis,command-execution,Java,Isis,Command Execution,我目前正在尝试在后台实现文件导出,以便用户可以在下载文件时执行一些操作 我使用了apacheisiscommandexustein:Backgroundaction属性。然而,我犯了一个错误 “非(可编码)值”,这是由ScalarValueRenderer类引发的错误 我的方法是这样的: @Action(semantics = SemanticsOf.SAFE, command = CommandReification.ENABLED) commandExecut

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

我使用了apacheisis
commandexustein:Background
action属性。然而,我犯了一个错误 “非(可编码)值”,这是由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);
}
@Action(语义=SemanticsOf.SAFE,
command=commandRefication.ENABLED)
commandExecuteIn=commandExecuteIn.BACKGROUND)
公共Blob exportViewAsPdf(){
最终接触=此;
最终字符串文件名=this.businessName+“联系人详细信息”;
最终映射参数=new HashMap();
参数。输入(“触点”,触点);
最终字符串模板=templateLoader.buildFromTemplate(Contact.class,“ContactViewTemplate”,参数);
返回pdfExporter.exportAsPdf(文件名、模板);
}
我认为错误与命令有关,该命令没有实际调用该操作,而是返回持久化的后台命令


这个实现实际上在没有返回类型的方法上工作。我错过什么了吗?或者有没有一种方法可以实现后台命令并获得预期的结果?

有趣的用例,但它不是我在实现框架的这一部分时所预期的,所以它不起作用并不奇怪。很明显,您在这里得到的错误消息非常模糊,因此我提出了一个 看看我们是否能至少改善这一点

我想知道你认为这个框架应该提供什么样的用户体验

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

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

Thx
Dan

有趣的用例,但它不是我在实现框架的这一部分时所预期的,因此我并不奇怪它不起作用。显然,您在这里得到的错误消息非常模糊,因此我提出了一个 看看我们是否能至少改善这一点

我想知道你认为这个框架应该提供什么样的用户体验

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

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

Thx
Dan

非常感谢您的回复,先生和这个想法。从现在起,我将尝试实施前端轮询。这个想法是在后台生成PDF,存储它,然后让前端获取生成的PDF。非常感谢您的回复,先生和这个想法。从现在起,我将尝试实施前端轮询。这个想法是为了在后台运行PDF,存储它,然后让前端获取生成的PDF。