Hallo miteinander,
Beim auslesen meines XML Files, kriege ich ab und zu (eben nicht immer!) folgende Fehlermeldung:
Das XML sieht meiner Meinung nach immer gut aus, der Code wird auch weiter ausgeführt, und das Programm läuft auch weiter wie es soll...
Hier in Zeile 18 tritt anscheinend ab und zu ein Problem auf:
Und hier die Methode wo das XML ausgelesen wird:
Kann mir jemand helfen?
Herzlichen Dank....
Beim auslesen meines XML Files, kriege ich ab und zu (eben nicht immer!) folgende Fehlermeldung:
Java:
[Fatal Error] path.xml:1:1: Vorzeitiges Dateiende.
org.xml.sax.SAXParseException; systemId: file:/C:/intellij/FlowSys/Projects/DocToPDF/target/path.xml; lineNumber: 1; columnNumber: 1; Vorzeitiges Dateiende.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at FlowSys.XML_Parser.getPath(XML_Parser.java:29)
at FlowSys.RunnerService$1.call(RunnerService.java:41)
at FlowSys.RunnerService$1.call(RunnerService.java:26)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.concurrent.Service.lambda$null$6(Service.java:725)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.concurrent.Service.lambda$executeTask$7(Service.java:724)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Das XML sieht meiner Meinung nach immer gut aus, der Code wird auch weiter ausgeführt, und das Programm läuft auch weiter wie es soll...
Java:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><FlowSys>
<PATH Customer="1" Mail="true" PDFName="1" PDM="true" PathToDataFile="C:\DataFile" PathToWinFTMExport="C:\DocToPDF\Input" pathArchiv="C:\DocToPDF\Archiv">
</PATH>
</FlowSys>
Hier in Zeile 18 tritt anscheinend ab und zu ein Problem auf:
Java:
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
System.out.println("Background task started...");
XML_Parser xmlParser = new XML_Parser();
//Pfad des Jar's herausfinden:
File path = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
String pathToSettings = path.getParentFile() + "\\path.xml";
//vor dem starten Pfade auslesen!
String pathArchiv = xmlParser.getPath("PATH", "pathArchiv", pathToSettings);
pathToDataFile = xmlParser.getPath("PATH", "PathToDataFile", pathToSettings);
String pathWinFTMExport = xmlParser.getPath("PATH", "PathToWinFTMExport", pathToSettings);
String pathOut = path.getParentFile().toString();
controller.setFieldIn(pathArchiv);
controller.setFieldDataFile(pathToDataFile);
controller.setFieldExport(pathWinFTMExport);
String mailStateFromXML = xmlParser.getPath("PATH", "Mail", pathToSettings);
String PDMStateFromXML = xmlParser.getPath("PATH", "PDM", pathToSettings);
String PDFName = xmlParser.getPath("PATH", "PDFName", pathToSettings);
String customerField = xmlParser.getPath("PATH", "Customer", pathToSettings);
System.out.println("PDFName: " + PDFName);
Boolean mailState = Boolean.parseBoolean(mailStateFromXML);
Boolean PDMState = Boolean.parseBoolean(PDMStateFromXML);
controller.setMailStatus(mailState);
controller.setPDMStatus(PDMState);
DocToPDF runnerApp = new DocToPDF(pathArchiv, pathOut, pathWinFTMExport, mailState, PDMState, PDFName, customerField);
runnerApp.start(controller);
return null;
}
};
Und hier die Methode wo das XML ausgelesen wird:
Java:
public String getPath(String TagName, String ElementName, String path) {
String result = "";
try {
File inputFile = new File(path);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName(TagName);
//System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
// System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
result = eElement.getAttribute(ElementName);
// System.out.println("result : " + result);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
Kann mir jemand helfen?
Herzlichen Dank....