この要件のために、レルムを渡すことによって org.wso2.carbon.user.core.util.DatabaseUtil クラスを使用してデータソースを作成しようとしましたが、データソースの検索中にエラーを示す例外が常に発生します。サーバーの起動時に org.wso2.carbon.user.core.internal.Activator -> startDeploy(BundleContext bundleContext) が呼び出され、realmconfiguration と datasource オブジェクトが正常に初期化される新しい RealmService インスタンスが作成されることを理解しています。Activator クラスでは、初期化された realmservice インスタンスが UserCoreUtil クラス (UserCoreUtil.setRealmService(realmService)) に設定されます。RealmService の初期化は DefaultRealmService を呼び出します。ここで、データソース インスタンスが初期化され、そのオブジェクトがプロパティに追加されます。
以下のユーザーまたはテナント関連の DB 操作のいずれかに対して、呼び出しが呼び出され、CarbonContext.getThreadLocalCarbonContext().getUserRealm() メソッドが呼び出されます。このメソッドは、サーバーの起動時に DefaultRealmService によって保存されたプロパティからデータソースを実際に使用し、userStoreManager インスタンスを作成します。すべてのユーザー関連操作が実行される userRealm を返します。
アプリケーション固有のテーブルにアクセスするために、独自の JDBCCustomManager クラスを作成し、JDBC 操作を実行しようとしました。「DatabaseUtil.getRealmDataSource(objRealmService.getBootstrapRealmConfiguration())」を実行すると、そのための DB 操作を行うデータソースが必要です。「データ ソースの検索中にエラーが発生しました: jdbc/WSO2CarbonDB」という例外が常に発生します。
JDBCUserStoreManager でテーブルにアクセスするメソッドを記述した場合、それは機能しますが、これは適切な方法ではありません。アプリケーションで使用できるように、WSO2 の datasources オブジェクトを取得する他の方法はありますか。