在 apache brooklyn Web 界面中,我们想为系统管理器显示一些内容。内容太长,无法用作简单的传感器值。
我们的想法是创建一个任务并将内容写入任务的输出流,然后向管理器提供基于 REST 的 URL,如下所示:/v1/activities/{task}/stream/stdout(当然链接被屏蔽有一些不错的文字)
流和任务是这样创建的:
LOG.info("{} Creating Activity for ClusterReport Feed", this);
activity = Tasks.builder().
displayName("clusterReportFeed").
description("Output for the Cluster Report Feed").
body(new Runnable() {
@Override
public void run() {
//DO NOTHING
}
}).
parallel(true).
build();
LOG.info("{} Task Created with Id: " + activity.getId(), this);
Entities.submit(server, activity).getUnchecked();
该任务似乎已创建,并且交互工作得非常好。但是,当我想使用准备好的 URL 从浏览器访问任务输出流时,我收到任务不存在的错误。
我们的想法是我们不在正确的管理/执行环境中。与实体及其传感器相比,网页在其他上下文中运行。我们如何放置一个任务,以便它在 Web 控制台上下文中也可见。
是否可以将内容写入文件,然后通过 Jetty(布鲁克林网络服务器)提供下载?那将是一个更简单的方法。