-2
Xerces jars에 이상한 문제가 있습니다. 코드를 다른 작업 영역으로 마이그레이션했습니다. org.w3c.dom XML 클래스를 사용하는 일부 코드가있었습니다. 이제 코드를 마이그레이션 했으므로 같은 코드가 예외를 던지고 있습니다. 내가 그것을 만든 객체를 디버깅 할 때Xerces JAR 예외가 발생합니다.
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
는 그러나 유형은 다음과 같습니다
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
있는지 아니의 Xerces 클래스는 그림으로 온 곳. 그리고 이로 인해 코드가 실패하게됩니다. 코드로 업데이트
:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setIgnoringComments(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
InputSource inputSource = new InputSource();
inputSource.setCharacterStream(new StringReader(xmlString));
Document document = builder.parse(inputSource);
String grade = "A";
NodeList nodes = document.getElementsByTagName("student");
if (!routeLimit.equals("")) {
Text gradeText = document.createTextNode(grade);
Element gradeTag = document.createElement("grade");
gradeTag .appendChild(gradeText);
nodes.item(0).appendChild(gradeTag);
}
라인 : nodes.item (0) .appendChild (gradeTag);
널 포인터 예외가 발생합니다.
또한 코드를 디버깅 할 때 문서 변수 [#document : null]의 값을보고이 사이트를 확인하여 많은 사람들이 동일한 문제를 겪고있는 것을 보았습니다. 그러나 구체적인 답변은 거의 없습니다.
지금까지 던져진 예외가 정확히 무엇인지 아는 것이 가능합니까? 'org.apache.xerces.jaxp.DocumentBuilderFactoryImpl'는'javax.xml.parsers.DocumentBuilderFactory'를 구현하고 있으므로 가져 오기가 예외의 루트가 아닙니다. – potame
null 포인터 예외입니다. –
이전 작업 영역의 종속성을 확인하십시오. 동일한 버전의 xerces를 사용했거나 XML 클래스의 다른 구현을 사용하셨습니까? Xerces에서 Saxon으로 전환 한 후에도 비슷한 문제가있었습니다. –