등록 정보 파일에서 구성 매개 변수를 읽는 Tomcat 배포를 만드는 데 수락되는 방법은 무엇입니까?등록 정보 파일을 사용하여 DB 연결 정보를로드하도록 Tomcat 구성
WAR 파일을 전달하고 클라이언트가 특정 디렉토리에서 특성 파일을 작성하거나 편집하는 것만을 요구하는 것이 좋을 것입니다. 이것은 일을하는 다소 일반적인 방법입니까? 이보다 더 좋은 접근법이 있습니까?
등록 정보 파일에서 구성 매개 변수를 읽는 Tomcat 배포를 만드는 데 수락되는 방법은 무엇입니까?등록 정보 파일을 사용하여 DB 연결 정보를로드하도록 Tomcat 구성
WAR 파일을 전달하고 클라이언트가 특정 디렉토리에서 특성 파일을 작성하거나 편집하는 것만을 요구하는 것이 좋을 것입니다. 이것은 일을하는 다소 일반적인 방법입니까? 이보다 더 좋은 접근법이 있습니까?
우리는 WAR와 컨텍스트 XML 파일을 배포하여 tomcat/conf/Catalina/localhost
디렉토리에 배치하고 모든 경로에서 webapp을로드 할 수 있습니다. 참조 문서 here이 있습니다. 이것은 다음과 같은 장점을 제공합니다
정말로 등록 정보 파일이 필요한 경우 매개 변수를 설정할 수 있습니다 문맥 X에서 ML 파일에서 속성 파일을 가리킨 다음 ServletContextListener에있는 매개 변수를 읽고 속성 파일을 읽습니다.
우리는이 문제를 해결할 방법 :
에 구성된 연결 풀에 연결하는 ResourceLink이있는 META-INF/context.xml에 파일이 포함되어 있습니다. xml 연결 정보를 직접적으로 가져 오지만 시간이 지남에 따라 갚아야합니다. 개발 서버는 개발을 가리키는 GlobalNamingResources와 테스트 서버가 테스트 등을 가리 키도록 설정됩니다. 그러면 동일한 WAR 파일을 아무 것도 편집하지 않고 각 서버에 복사 할 수 있습니다.
이것은 특성 파일을 사용하지 않지만 동일한 목표를 달성한다고 생각합니다. 사용자/고객이 데이터베이스 연결 정보를 설정할 수 있습니다. GlobalNamingResource의
예 : 전쟁 파일의 context.xml의
<Resource name="jdbc/dbconnection" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1546:SID"
username="scott" password="tiger" maxActive="8" maxIdle="4"
validationQuery="select 1 from dual"
testOnBorrow="true"/>
예 :
<Context path="/MyWebApp" docBase="MyWebApp" debug="5" reloadable="true">
<ResourceLink name="jdbc/dbconnection" global="jdbc/dbconnection"
type="javax.sql.DataSource"/>
</Context>
그것은 전쟁 지역 중 매장 구성에 좋은 연습입니다. WAR에서는 속성 파일을 찾을 기본 위치가 있습니다. 기본값이 작동하지 않으면 conf/Catalina/[host] 디렉토리의 컨텍스트 조각에 정의 된 JVM 매개 변수 또는 컨텍스트 매개 변수를 통해 위치를 지정할 수 있습니다. 예를 들어,
<Context docBase="/server/app.war"
swallowOutput="true" unpackWAR="false" useNaming="false">
<Parameter name="config-file" value="/config/db.properties" override="true" />
</Context>