首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空文件,同时尝试使用akka流封送jaxb对象。

空文件,同时尝试使用akka流封送jaxb对象。
EN

Stack Overflow用户
提问于 2019-09-27 15:43:29
回答 1查看 85关注 0票数 1

我正在尝试将jaxb对象封送到xml字符串中,然后使用akka流将其写入文件,但是在执行创建后文件是空的。

我已经检查过封送处理方法,但是没有流,它工作得很好。请帮助我理解哪里是错误。

这里是我的测试方法:

代码语言:javascript
运行
复制
  @Test
    public void singlePojoTest() {
        ActorSystem actor = ActorSystem.create();
        Materializer materializer = ActorMaterializer.create(actor);
        //Creating and initializing of JAXB POJO
        AuditFile.Header header = new AuditFile.Header();
        initHeader(header,calendar);
        // useMarshaller - is converting object to xml String
        Flow<Object,String,NotUsed> flow = Flow.of(Object.class).map(o -> useMarshaller(o));
        Source<String,NotUsed> source = Source.single((Object)header).via(flow);
        CompletionStage<IOResult> result = source.map(string -> ByteString.fromString(string)).runWith(FileIO.toPath(Paths.get("test.txt")),materializer);
        actor.terminate();
    }

我期望在执行带有封送处理的xml的方法文件之后,将创建.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-28 09:31:19

在启动流后立即调用actor.terminate();,而不等待流完成。

您必须“阻止”测试线程,并允许异步流处理在终止参与者系统之前完成。

在关闭参与者系统之前应用以下操作。

代码语言:javascript
运行
复制
result.toCompletableFuture().get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58137700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档