otrzymuję NullPointerException w poniższym kodzie:Pierwsze NullPointerException podczas przekształcania elementu DOM ciąg
String str = SOME_HTML_STRING;
Node node = convertStrIntoNodeUsingJTidy();
domToString(node);
//converts node to string
public static String domToString(org.w3c.dom.Node node)throws Exception {
try {
StringWriter sw = new StringWriter();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
// NullPointerException at this line, although node is not null
transformer.transform(new DOMSource(node), new StreamResult(sw));
return sw.toString();
} catch (Exception ex) {
throw new Exception("Error converting to String", ex);
}
}
StackTrace jest:
Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.example.Util.domToString(Util.java:3179)
... 128 more
Caused by: java.lang.NullPointerException
at com.sun.org.apache.xml.internal.serializer.ToXMLStream.processingInstruction(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.processingInstruction(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
... 131 more
już sprawdzone na poniższy link: http://geekymeeky.blogspot.in/2008/10/javaxxmltransform-transformerexception.html
Powyższy post mówi, że jeśli węzeł tekstowy ma wartość null, występuje ten wyjątek.
Chcę się dowiedzieć, jaka wartość zmiennej str spowodowała wartość węzła tekstowego na wartość null i doprowadziła do tego wyjątku.
Co to jest "SOME_HTML_STRING"? – fge
Czy jesteś pewien, że 'węzeł' nie ma wartości NULL? Przed transformowaniem spróbuj dodać 'assert node! = Null'. – user1516873
@fge To jest to, co chcę wiedzieć. W rzeczywistości jeden z naszych klientów zgłosił ten błąd. Wypróbowałem każdy możliwy scenariusz "SOME_HTML_STRING", ale nie mogę odtworzyć błędu. –