Java - HtmlUnit - 无法将HTML保存到文件(在某些情况下)

时间:2010-04-22 15:18:52

标签: java file-io htmlunit

我在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

现在,父目录存在,其他一些文件已经写入目录。查看文件名,我没有看到任何可以作为红色标记突出显示文件名错误的内容。

我该怎么做才能纠正这个错误?

谢谢,

沃尔特

1 个答案:

答案 0 :(得分:1)

嗯,你完全在最大路径长度内。异常追踪显然认为这是一个路径问题。

我会尝试一些额外的测试来帮助隔离问题。在写入之前检查目录:File.exists(), File.isDirectory(), File.isWritable()。对文件本身进行类似的检查。可能想查看磁盘是否已满。

如果您可以获得有关问题根源的更多信息,我们可以解决它。