Apache zookeeper 创建znode时,是什么导致MARSHALLINGERROR?

Apache zookeeper 创建znode时,是什么导致MARSHALLINGERROR?,apache-zookeeper,Apache Zookeeper,我正在用我的ZookePernetexnuget软件包执行一个简单的createAsync(),它正在抛出一个异常,该异常由MARSHALLINGERROR触发 以下是两行摘要(在这两行之间,成功地向Zookeeper确认了连接): 我不明白ClusterWatcher是我自己从Watcher派生的类。是的,我是用C#写的,但这是一件如此简单的事情,我认为它无关紧要。主机正在运行Windows 10 Pro,如果有必要的话。此异常可以通过不指定ACL模式触发(您似乎通过了null)。在Java中

我正在用我的
ZookePernetex
nuget软件包执行一个简单的
createAsync()
,它正在抛出一个异常,该异常由
MARSHALLINGERROR
触发

以下是两行摘要(在这两行之间,成功地向Zookeeper确认了连接):


我不明白<当然,code>ClusterWatcher是我自己从
Watcher
派生的类。是的,我是用C#写的,但这是一件如此简单的事情,我认为它无关紧要。主机正在运行Windows 10 Pro,如果有必要的话。

此异常可以通过不指定ACL模式触发(您似乎通过了
null
)。在Java中,您可以为ACL模式传递预定义的列表
ZooDefs.Ids.OPEN\u ACL\u UNSAFE
(例如,或该类中的其他一个);对于C#,可能会有一个类似的命名常量

在Java客户端库中,这是一个方便常数,定义为:

/**
 * This is a completely open ACL .
 */
public final ArrayList<ACL> OPEN_ACL_UNSAFE = new ArrayList<ACL>(
        Collections.singletonList(new ACL(Perms.ALL, ANYONE_ID_UNSAFE))
);
/**
*这是一个完全开放的ACL。
*/
public final ArrayList OPEN\u ACL\u UNSAFE=新建ArrayList(
Collections.singletonList(新ACL(Perms.ALL、any\u ID\u safe))
);

Ids可在ZookeeperNetEx的org.apache.zookeeper.ZooDefs.Ids中找到。
/**
 * This is a completely open ACL .
 */
public final ArrayList<ACL> OPEN_ACL_UNSAFE = new ArrayList<ACL>(
        Collections.singletonList(new ACL(Perms.ALL, ANYONE_ID_UNSAFE))
);