2016-11-21 14 views
0

내 웹 응용 프로그램에서 활성화 할 프로필의 환경 변수 항목을 만들었습니다 : Tomcat 서버의 setenv.bat 파일에서 JAVA_OPTS = % JAVA_OPTS % -Dspring.profiles.active = prod프로필은 Tomcat에 환경 변수가 설정되지 않았지만 web.xml에서 mention을 언급 할 때 선택 함

그리고 내 응용 프로그램이 활성 프로파일을 사용하여 데이터 소스를로드하려고하면 활성 프로파일이 설정되지 않아 예외가 발생합니다. applicationcontext.xml에서

항목 : 내가 web.xml의 항목을 통해 같은 일을 수행 할 때

<beans profile="dev"> 
    <bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property> 
     <property name="url" value="jdbc:oracle:thin:@localhost:1521:books"></property> 
     <property name="username" value="system"></property> 
     <property name="password" value="xyz"></property> 
    </bean> 
    </beans> 

    <beans profile="prod"> 
    <bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property> 
     <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property> 
     <property name="username" value="system"></property> 
     <property name="password" value="abc"></property> 
    </bean> 
    </beans> 

</beans> 

그러나 그것은 작동 :

<context-param> 
    <param-name>spring.profiles.active</param-name> 
    <param-value>dev</param-value> 
    </context-param> 

사람로드의 문제가 무엇인지 말해 주시겠습니까 프로필 환경 변수를 사용합니다.

답변

0

명령 줄 옵션은 실행중인 웹 컨텍스트에 의해 자동으로 선택되지 않는 Tomcat 자체에 대한 시스템 속성을 정의하기 때문에.

뭔가 like this 아마 작동합니다 : 당신이 당신의 배포를 만들고 싶어 변화의 종류에 따라,

<context-param> 
    <param-name>spring.profiles.active</param-name> 
    <param-value>${spring.profiles.active}</param-value> 
</context-param> 

또는, 구성 및 하나의 봄을 시작 단순화 봄 부팅,보고 할 수 있습니다 신청.

+0

문제는 서버 자체에 변수를 설정하여 개발 환경인지 아니면 덤프되어 있는지를 알 수 있고 해당 프로필을 기반으로로드됩니다. setenv 변수를 설정하려고했지만 내 응용 프로그램이 거기에서 시스템 속성이나 환경 변수를 선택하지 않습니다. –

+0

OK, 제가 제안한 것은 그 문제를 해결해야합니다. 너 해봤 니? – OrangeDog

+0

네,하지만 Tomcat의 setenv 파일에'spring.profiles.active' 파일을 추가 한 후에도 작동하지 않았습니다. 단지 서버 설정에서만 읽을 수 있습니다. –