Для этого требования мы попытались создать источник данных, используя класс org.wso2.carbon.user.core.util.DatabaseUtil, передав область, но мы всегда получаем исключение ошибка в поиске источника данных. Мы понимаем, что во время запуска сервера вызывается org.wso2.carbon.user.core.internal.Activator -> startDeploy (BundleContext bundleContext) и создает новый экземпляр RealmService, где объекты конфигурации и объекты данных успешно инициализируются. В классе Activator инициализированный экземпляр realmservice устанавливается в класс UserCoreUtil (UserCoreUtil.setRealmService (realmService)). Инициализация RealmService вызывает функцию DefaultRealmService, где экземпляр datasource инициализируется и этот объект добавляется к свойствам.Создание таблиц конкретных приложений в существующей базе данных WSO2
Для любого пользователя или операций, связанных с арендатором дБ ниже вызова вызывается, CarbonContext.getThreadLocalCarbonContext(). GetUserRealm() вызывается метод, который фактически использует источник данных из свойств, которые хранились на DefaultRealmService во время запуска сервера и создает экземпляр userStoreManager и возвращает userRealm, через который выполняются все связанные с пользователем операции.
Для доступа к таблице конкретных приложений мы создали собственный класс JDBCCustomManager и попытались выполнить JDBC-операции. Нам нужен источник данных для выполнения операций DB для этого, когда мы выполняем «DatabaseUtil.getRealmDataSource (objRealmService.getBootstrapRealmConfiguration())», мы всегда получаем исключение «Ошибка в поиске источника данных: jdbc/WSO2CarbonDB».
Если мы напишем методы доступа к нашей таблице в JDBCUserStoreManager, это работает, но это не правильный способ сделать. Можете ли вы предложить, есть ли другой способ завладеть объектом данных WSO2, чтобы мы могли использовать его в приложении.