2014-12-01 1 views
1

런타임에 연결을 변경해야합니다. 나는이 서버 구성이 : 나는이 방법을 시도하지만이 방법은 일을 모르겠어요 EbeanServerFactory.create(c);런타임에 프로그래밍 방식으로 기본 서버 Play + Ebean을 변경하는 방법

public static void ChangeConfig(){ 
    ServerConfig c = new ServerConfig(); 
    c.setName("test"); 

    c.loadFromProperties(); 

    c.setDefaultServer(true); 
    c.setRegister(true); 

    EbeanServerFactory.create(c); 
} 

나에게 RuntimeException: DataSource user is null?를 제공하고 있습니다

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.*" 

을하지만, 무엇을이다 내가 발견. 이 오류의 원인은 무엇입니까? 이 문제를 해결할 다른 방법이 있습니까?

+1

을 당신이해야한다고 생각 달성하려는 목표 (직면 한 문제와 기본 서버를 변경하는 전략을 채택하려는 이유)를 설명하십시오. 나는 당신이 틀린 문제를 해결하려고 노력하고 있을지도 모른다고 생각합니다. –

답변

0

을 나는 EbeanServer 클래스를 사용하여 내 문제를 해결할 다른 방법을 찾아 냈다. 이렇게하면 기본 서버가 변경되지 않지만 특정 서버에 대해 모델을 사용할 수 있습니다. 예를 들어 :

Activity.find.all(); //Get all activities in the default server 

내가하여 변경 : 내가 예를 들어,이 라인 내 코드의 수정을 많이 했어요이의

EbeanServer defserver = Ebean.getServer("test"); 

원인

defserver.find(Activity.class).findList(); //Get all activities in server "test" 
0

이 오류는 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); 
+0

답변 주셔서 감사하지만, 내가 노력하고있어 다른 서버 인스턴스 (이 경우에는'test')에 의해 ebean의 기본 서버 인스턴스를 런타임에 변경하는 것이고, 확실히 내'ChangeConfig' 메소드는 문제를 해결하지 못합니다. 미안하지만 질문이 명확하지 않은 경우. 수정을 확인하십시오. 감사 – Aramillo

관련 문제