Java 尝试使用akka流封送jaxb对象时为空文件
我试图将jaxb对象封送到xml字符串,然后使用akka Streams将其写入文件,但在执行之后,创建的文件是空的 我已经检查了封送处理方法,但它在没有流的情况下运行良好。 请帮助我了解哪里有错误 这是我的测试方法:Java 尝试使用akka流封送jaxb对象时为空文件,java,jaxb,akka-stream,Java,Jaxb,Akka Stream,我试图将jaxb对象封送到xml字符串,然后使用akka Streams将其写入文件,但在执行之后,创建的文件是空的 我已经检查了封送处理方法,但它在没有流的情况下运行良好。 请帮助我了解哪里有错误 这是我的测试方法: @Test public void singlePojoTest() { ActorSystem actor = ActorSystem.create(); Materializer materializer = ActorMateri
@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();
}
@测试
public void singlePojoTest(){
ActorSystem actor=ActorSystem.create();
Materializer Materializer=ActorMaterializer.create(actor);
//JAXB POJO的创建和初始化
AuditFile.Header Header=新的AuditFile.Header();
initHeader(头,日历);
//useMarshaller-正在将对象转换为xml字符串
Flow=Flow.of(Object.class).map(o->usemashaller(o));
Source Source=Source.single((对象)头)。via(流);
CompletionStage result=source.map(string->ByteString.fromString(string)).runWith(FileIO.toPath(path.get(“test.txt”)),物化器);
actor.terminate();
}
我希望在执行方法之后,将创建包含封送xml的文件。您正在调用
actor.terminate()代码>在启动流后立即执行,无需等待流完成
在终止actor系统之前,必须“阻塞”测试线程,并允许异步流处理完成
在关闭actor系统之前应用以下内容
result.toCompletableFuture().get();
您正在调用actor.terminate()代码>在启动流后立即执行,无需等待流完成
在终止actor系统之前,必须“阻塞”测试线程,并允许异步流处理完成
在关闭actor系统之前应用以下内容
result.toCompletableFuture().get();