Я пытаюсь создать раздел программно. Я попытался следовать примеру на веб-сайте ApacheDS (https://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html#adding-a-partition-programmatically).), но этот пример точно не правильно.
Вот мой код:
LdapConnection connection = new LdapNetworkConnection(host, port);
connection.bind(admin, password);
connection.loadSchema();
SchemaManager schemaManager = connection.getSchemaManager();
Dn suffixDn = new Dn(schemaManager, "dc=newParition,dc=com");
JdbmPartition newPartition = new JdbmPartition(schemaManager);
newPartition.setId("newParition");
newPartition.setSuffixDn(suffixDn);
newPartition.setCacheSize(1000);
newPartition.setPartitionPath(new URI("file:///var/lib/apacheds-2.0.0-M15/default/partitions/newParition"));
newPartition.addIndex(new JdbmIndex("objectClass", false));
newPartition.addIndex(new JdbmIndex("dc", false));
Entry contextEntry = new DefaultEntry(schemaManager, suffixDn);
contextEntry.put("objectClass", "domain", "top");
contextEntry.put("dc", "newParition");
newPartition.initialize();
newPartition.add(new AddOperationContext(null, contextEntry));
Я вижу следующую ошибку, когда пытаюсь добавить contextEntry в раздел:
org.apache.directory.api.ldap.model.exception.LdapSchemaViolationException: ERR_219 Entry dc=newParition,dc=com contains no entryCsn attribute: Entry …
Это даже не похоже на то, что раздел добавляется на мой сервер (когда я перезапускаю свой сервер apacheds, я не вижу никаких новых namingContexts под корневым DSE). Я думаю, что здесь я пропускаю некоторые шаги, но не уверен, что это такое.