私のアプリでは、DOM パーサーを使用して XML ファイルを解析しようとしています。解析が成功した場合、ファイルは成功ディレクトリに移動されます。それ以外の場合はエラー ディレクトリに移動されます。次に、ファイルはソース ディレクトリから削除されます。
問題は、不正な形式の XML ファイル (例: Xml ドキュメントに終了タグがない) の例外がスローされ、次のエラー メッセージが表示されることです。
「別のプロセスで使用されているため、プロセスはファイルにアクセスできません。」
このため、ファイルはソース ディレクトリから削除されません。
public class XMLLoader extends Thread {
boolean success =false;
public XMLLoader(SoapConnection con, String xmlPath) {
try {
System.out.println("Laoding the XML...");
File file = new File(xmlPath);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(file);
String xmlString = null;
DOMSource domSource = new DOMSource(document);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
xmlString = writer.toString();
InboundCaseXmlResponse cResponse = con.LoadXmlCase(xmlString);
System.out.println("SOAP Response == "+cResponse);
if(cResponse.getHasErrors()== false)
{
success = true;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public boolean getStatus()
{
return success;
}
}