0

每当我尝试使用XADisk将 byte[] 保存到文件时,我都会收到 XASystemNoMoreAvailableException:

org.xdisk.filesystem.exceptions.XASystemNoMoreAvailableException:XADisk 实例遇到严重问题,不再可用。这种情况非常罕见。如果您认为您已经为 XADisk 工作设置了正确的设置,请考虑在 XADisk 论坛中讨论,或提出带有详细信息的错误

根据示例,我的代码是最基本的......

public static void main(String[] args) throws Exception
{
    StandaloneFileSystemConfiguration configuration = new StandaloneFileSystemConfiguration("xadiskFolder", "1");
    XAFileSystem XAF = XAFileSystemProxy.bootNativeXAFileSystem(configuration);
    XAF.waitForBootup(-1);

    Session session = XAF.createSessionForLocalTransaction();

    byte[] myByteArray = getByteArrayFromSomewhere();

    File myFile = new File("outputFile.test");
    session.createFile(myFile, false);
    XAFileOutputStream output = session.createXAFileOutputStream(myFile, true);
    output.write(myByteArray);
    output.close();
    session.commit();
}
4

1 回答 1

0

愚蠢的错误!!

如果您调用,可能会导致此异常

XAF.shutdown();

在您尝试写入/读取文件之前。在我的实际代码中,我使用包含关闭 xdisk 的代码的 finally 块而不是在 catch 中使用 try/catch/finally。不要问我为什么。在任何情况下,因为 xdisk 已经关闭,所以会导致错误。

如果可能的话,我会向 xdisk 的人们推荐的是改进更新中的异常。基本上是说引擎没有运行或已经关闭。是的,这是我的错,但如果也有更好的异常消息也会很棒。

于 2013-02-15T03:26:25.847 回答