2016-07-06 3 views
1

OpenShift를 사용하고 있으며, 빠른 개발을 위해 로컬 Tomcat 인스턴스에 응용 프로그램을 배포하려고합니다. 나는 DB의 거래는 EclipseLink를 사용하고, 나는 이런 식의 persistence.xml에 사용 OpenShift 환경 변수를 제공 한 : 내 로컬 컴퓨터에 리눅스를 사용하고Eclipse에서 persistence.xml의 환경 변수 값을 설정하십시오.

<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/mydbname"/> 
<property name="javax.persistence.jdbc.user" value="${env.OPENSHIFT_MYSQL_DB_USERNAME}"/> 
<property name="javax.persistence.jdbc.password" value="${env.OPENSHIFT_MYSQL_DB_PASSWORD}"/> 

를, 그래서 모든 설정 한 이 변수 값은 로컬 버전에도 적용됩니다 (localhost, 3306 등). 터미널에서 사용할 수 있는지 두 번 확인했습니다. here - Eclipse에서 Tomcat 인스턴스의 설정을 열고 "Open launch configuration"을 선택하고 인수 탭에서 VM 인수에 입력했습니다 ("Variables"도 시도 함). .. "메뉴). 그러나 작동하지 않는 및 포트 변수에 NumberFormatException 받고 있어요, 원시 문자열 "$ {env.OPENSHIFT_MYSQL_DB_PORT}"포트로 것 같아요.

(사실,이 중 OpenShift에 작동하지 않습니다.) 나는 그것이 작동하도록 이클립스/톰캣에서 이러한 변수 값을 설정할 수 있습니다

를?

미리 감사드립니다.

답변

2

이것은 불가능합니다. 당신이 봄을 사용한다면 거기에서 가능할 수 있지만 단순한 JPA no. 당신이 할 수있는 일은 프로그래밍 방식의 설정을 사용하고이 포스트에서 설명한 것과 같은 것을 할 것입니다. Read Environment Variables in persistence.xml file

4

WildFly에서 가장 간단한 방법은 다음과 같이 ee 하위 시스템에서 속성 바꾸기를 가능하게하는 것입니다. 예 :

이제 env 접두어와 함께 BeanShell 표현식을 사용하여 환경 변수를 참조 할 수 있습니다. 예 :

이 전략은 환경 변수를 사용자 지정하기 위해 환경 변수를 전달할 수있는 Openshift와 같은 클라우드 환경에서 특히 유용합니다.

관련 문제