私は ApacheDS バージョン 2.0.0-M3 を使用しています (これがどのように機能するのかよくわかりません)。AbstractPartition を拡張して、新しいパーティション クラスを作成しました。このクラスのインスタンスを作成し、それを ApacheDsService インスタンスに追加できます。
File instancePath = new File( param[0] );
ApacheDsService service = new ApacheDsService();
InstanceLayout layout = new InstanceLayout( instancePath );
try
{
service.start(layout);
//
TestPartition partition = new TestPartition ( layout );
partition.setSuffix( "ou=test" );
partition.setSchemaManager( service.getDirectoryService().getSchemaManager() );
partition.initialize();
service.getDirectoryService().addPartition( partition );
}
catch (Exception x)
{
LOG.error("Failed to start the service.", x);
System.exit(1);
}
しかし、Apache Directory Studio を使用してサーバーに接続すると、パーティションが表示されません。
次の質問を見つけました: JNDI/LDAP を使用してプログラムで ApacheDS サーバーのルートにパーティションを作成する方法は? kayyagari は、「パーティションを構成する必要があると言っています... ou=config 領域で」。
これが何を意味するのか正確にはわかりません。ウェブで詳細を検索してもうまくいきませんでした。
Apache Directory Studio で ou=config パーティションを確認できます。そこに他のパーティションが表示されます: ads-partitionId=system および ads-partitionId=example. objectClass 属性を見ると、これらの両方に値が ads-jdbmPartition であることがわかります。自分のパーティションにそのようなエントリが必要かどうかわかりません (これは jdbm パーティションではなく、Web サービスからデータを取得するためです)。
(残念ながら、ApacheDS サイトの 2.0.0-M3 のドキュメント リンクでは 404 が表示されます。) カスタム パーティションの LDIF エントリはどのように表示されますか? 正しく入力できません。また、何か抜けているのか、間違って入力したのかわかりません。
どんな助けでも大歓迎です。
ありがとう。