2010-04-22 1 views
0

У меня возникают прерывистые проблемы, сохраняющие ответ HTML в HtmlUnit.Java - HtmlUnit - Не удается сохранить HTML в файл (в некоторых случаях)

Caused by: java.io.IOException: Unable to save file:C:\ccview\PP50773_4.0_walter\TSC_hca\Applications\HCA_J2EE\HCA\target\HtmlUnitTests\single\1\com\pnc\tsc\hca\ui\test\SiteCrawler\crawlSiteAsProvider\10.SiteCrawler.crawl.html 
    at com.pnc.tsc.hca.ui.util.GetUtil.save(GetUtil.java:128) 
    at com.pnc.tsc.hca.ui.util.GetUtil.add(GetUtil.java:75) 
    at com.pnc.tsc.hca.ui.util.GetUtil.click(GetUtil.java:49) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:87) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:61) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:63) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:63) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:63) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawl(SiteCrawler.java:54) 
    at com.pnc.tsc.hca.ui.test.SiteCrawler.crawlSiteAsProvider(SiteCrawler.java:50) 
    ... 15 more 
Caused by: java.lang.RuntimeException: java.io.IOException: The system cannot find the path specified 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.getAttributesFor(XmlSerializer.java:165) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.printOpeningTag(XmlSerializer.java:126) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.printXml(XmlSerializer.java:83) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.printXml(XmlSerializer.java:93) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.printXml(XmlSerializer.java:93) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.asXml(XmlSerializer.java:73) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.save(XmlSerializer.java:55) 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.save(HtmlPage.java:2259) 
    at com.pnc.tsc.hca.ui.util.GetUtil.save(GetUtil.java:126) 
    ... 24 more 
Caused by: java.io.IOException: The system cannot find the path specified 
    at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
    at java.io.File.createNewFile(File.java:883) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.createFile(XmlSerializer.java:216) 
    at com.gargoylesoftware.htmlunit.html.XmlSerializer.getAttributesFor(XmlSerializer.java:160) 
    ... 32 more 

Теперь родительский каталог существует, а некоторые другие файлы уже записаны в каталог. Глядя на имя файла, я не вижу ничего, что выделялось бы как красный флаг, указывающий, что имя файла плохое.

Что я могу сделать, чтобы исправить эту ошибку?

Спасибо,

Walter

ответ

1

Ну, хорошо в пределах максимальной длины пути. Исключительная трассировка явно считает, что это проблема пути.

Я бы попробовал некоторые дополнительные тесты, чтобы помочь изолировать проблему. Перед записью проверьте каталог: File.exists(), File.isDirectory(), File.isWritable(). Аналогичные проверки самого файла. Может захотеть узнать, заполнен ли диск тоже.

Если вы можете получить немного больше информации об источнике проблемы, мы сможем решить проблему.

+0

Дело в том, что это происходит случайно. У меня есть искатель, который сканирует все веб-приложение, поэтому, возможно, первые 9 страниц работают нормально, а затем страница 10 умирает по какой-то нечетной причине. Это означает, что каталог существует и доступен для записи, диск не заполнен. – 2010-04-29 02:13:40

+0

Теперь я сохраняю содержимое в таблице базы данных. Я больше не сохраняю его непосредственно в файловой системе. – 2010-05-26 11:40:36