Hello, I am using Karaf 4.2.10 and attempting to perform a rather simple xml parsing:
Caused by: java.lang.NullPointerException at org.apache.xerces.util.ErrorHandlerProxy.error(Unknown Source) ~[!/:?] at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:137) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1900) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:740) ~[?:1.8.0_102] at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:570) ~[?:1.8.0_102] at org.apache.xerces.jaxp.JAXPValidatorComponent$XNI2SAX.startElement(Unknown Source) ~[!/:?] at org.apache.xerces.jaxp.JAXPValidatorComponent.startElement(Unknown Source) ~[!/:?] at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) ~[!/:?] at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source) ~[!/:?] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) ~[!/:?] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[!/:?] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[!/:?] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[!/:?] at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[!/:?] at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) ~[!/:?] at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[!/:?] at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) ~[?:1.8.0_102] After snooping around, I noticed a /container/lib/endorsed/org.apache.karaf.specs.java.xml-4.2.10.jar lib containing parser-related libs. My code executed successfully once I ran Karaf without this particular file, though I don’t feel right just pulling it out of Karaf blindly, as its absence creates a distinct possibility of unforeseen issues down the road. Here are the only imports my bundle references in its manifest: Import-Package: javax.xml.transform,javax.xml.transform.stream,org.xml.sax,javax.xml.parsers,javax.xml.validation There are no entries under Bundle-Classpath Lastly, here is the java code that performs the xml parsing: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newSchema(new StreamSource(new FileInputStream("<LOCATION-OF-THE-SCHEMA-FILE>"))); factory.setNamespaceAware(true); factory.setSchema(schema); factory.setExpandEntityReferences(false); factory.setXIncludeAware(false); factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); factory.setFeature("http://xml.org/sax/features/external-general-entities", false); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setErrorHandler(null); byte[] fileContent = Files.readAllBytes(Paths.get("<LOCATION-OF-THE-XML-FILE-TO-BE-PARSED>")); InputStream inStream = new ByteArrayInputStream(fileContent); Document doc = builder.parse(inStream); Please advise me as to what I am doing wrong, as well as a possible solution. Thank you for your time! Sincerely, Brock Samson