XML -Transformation inJava

Java-Forum
Anonymous
 XML -Transformation in

Post by Anonymous »

Ich versuche, ein XML in einem Akka -Flow mit javax.xml.transform.transformer :
zu transformieren.

Code: Select all

Flow transformXml(@NonNull final Source xslt) {
final Pair input = Flow
.of(ByteString.class)
.toMat(StreamConverters.asInputStream(), Keep.right())
.preMaterialize(actorSystem);
final javax.xml.transform.Source xmlSource = new StreamSource(input.first());
final javax.xml.transform.Source xsltSource = new StreamSource(xslt.runWith(StreamConverters.asInputStream(), actorSystem));
final Source transformed = Source.lazySource(() -> {
final Pair pair = StreamConverters
.asOutputStream(Duration.ofMinutes(5))
.preMaterialize(actorSystem);
final OutputStream outputStream = pair.first();
final Result output = new StreamResult(outputStream);
final TransformerFactory transformerFactory = TransformerFactory.newInstance();
final Transformer transformer = transformerFactory.newTransformer(xsltSource);
final Source transformerStream = pair.second();
transformer.transform(xmlSource, output);
outputStream.close();
return transformerStream;
}).mapMaterializedValue(i -> NotUsed.getInstance()).mapError(TransformerException.class, transformerException -> transformerException);
return Flow.fromSinkAndSource(input.second(), transformed);
}
Ausführen der Fluss führt zu einer sofortigen Zeitlimit, Transformator#Transformation hungert anscheinend.
@Test
void transformFlow() {
final String expectedResult = "...";
final Source xmlSource = Source.single(ByteString.fromString("some valid xml"));
final Source xsltSource = Source.single(ByteString.fromString("some valid xslt"));
Assertions.assertEquals(expectedResult,
xmlSource
.via(transformXml(xsltSource))
.runWith(akka.stream.javadsl.Sink.fold(ByteString.emptyByteString(), ByteString::concat), actorSystem)
.toCompletableFuture()
.join()
.utf8String());
}
< /code>

javax.xml.transform.transformexception: javax.xml.transform.transformeException: com.sun.org.apache.xml.internal.utils.WorpledRappedRappetimeexce -Brack -> -Cant: Timeout auf neue Daten < /p> < /p /> < /> < /> < /> < /> < /> < />; Bitte sagen Sie mir bitte, was hier blockiert und wie ich es beheben kann?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post