Мне нужно изменить соединение во время выполнения. У меня эти конфигурации серверов:
db.default.driver=oracle.jdbc.OracleDriver
db.default.url="jdbc:oracle:thin:@//178.20.26.25:1521/orcl"
db.default.user="TEST1"
db.default.password="test1"
db.test.driver=oracle.jdbc.OracleDriver
db.test.url="jdbc:oracle:thin:@//178.20.26.26:1521/orcl"
db.test.user="TEST"
db.test.password="test"
ebean.default="models.*"
ebean.test="models.*"
Я пытаюсь с помощью этого метода, но дать мне RuntimeException: DataSource user is null?
в EbeanServerFactory.create(c);
public static void ChangeConfig(){
ServerConfig c = new ServerConfig();
c.setName("test");
c.loadFromProperties();
c.setDefaultServer(true);
c.setRegister(true);
EbeanServerFactory.create(c);
}
Я не уверен, что этот метод делает это, но это то, что я нахожу. Что может быть причиной этой ошибки? Есть ли другой способ решить эту проблему?
Я нашел другой способ решить мою проблему, используя класс EbeanServer
. Это не изменяет сервер по умолчанию, но позволяет использовать модель для определенного сервера. Например:
EbeanServer defserver = Ebean.getServer("test");
Причиной этого я сделал много изменений в моем коде, например, в этой строке:
Activity.find.all(); //Get all activities in the default server
Я изменил его:
defserver.find(Activity.class).findList(); //Get all activities in server "test"
Эта ошибка возникает из-за того, что DataSourceConfig не загружается из файла свойств.
Его можно создать в методе ChangeConfig. Для этого добавьте следующий код:
DataSourceConfig ds = new DataSourceConfig();
ds.setDriver("oracle.jdbc.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@//178.20.26.26:1521/orcl");
ds.setUsername("TEST");
ds.setPassword("test");
c.setDataSourceConfig(ds);
test
в этом случае) во время выполнения, определенно мой метод ChangeConfig
не решает проблему. Извините, если мой вопрос не был ясен. Пожалуйста, проверьте редактирование. Спасибо