ich diese Ausnahme bin immer wenn eine xml mit xslt Transformation:Grails XSLT-Transformation, OutOfMemoryError: Java Heap-Speicher
Caused by: java.lang.OutOfMemoryError: Java heap space
at net.sf.saxon.tree.tiny.TinyTree.condense(TinyTree.java:430)
at net.sf.saxon.tree.tiny.TinyBuilder.close(TinyBuilder.java:206)
at net.sf.saxon.event.ReceivingContentHandler.endDocument(ReceivingContentHandler.java:244)
at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:449)
at net.sf.saxon.event.Sender.send(Sender.java:177)
at net.sf.saxon.Controller.makeSourceTree(Controller.java:1910)
at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:573)
at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:185)
at com.lomnido.service.XsltTransformService.$tt__transform(XsltTransformService.groovy:27)
I Saxon-HE bin mit der Version 9.7.0-5
Mein Code :
TransformerFactory factory = TransformerFactory.newInstance();
StreamSource xsltStream = new StreamSource(xslt)
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
Transformer transformer = factory.newTransformer(xsltStream);
StreamSource ins = new StreamSource(input);
File tmp = File.createTempFile("test", "xslttransform")
StreamResult out = new StreamResult(tmp);
transformer.transform(ins, out);
Die Größe der XML-Datei beträgt ca. 100 MB. Gibt es eine Möglichkeit, wie ich dieses Problem vermeiden könnte? Gibt es etwas wie das Streaming der Eingabedatei? Gibt es eine Alternative zu Saxon? Ich brauche xslt 2.0 für meine Transformationen.
Mit freundlichen Grüßen, Peter
Überprüfen Sie dies: https://stackoverflow.com/questions/19764275/java-lang-outofmemoryerror-while-transforming-xml-in-a-huge-verzeichnis –