2012-09-11 2 views
1

이것은 바보 같은 질문 일 수 있습니다.Tomcat VM 인수 바꾸기

현재 웹 응용 프로그램에 필요한 일부 VM 인수가 있습니다. 그들은 같은 있습니다 :

-Dcom.company.custom.var='test' 

을 그리고 난과 코드에서 액세스 : 나는 바람둥이 XML 파일 중 하나 (server.xml에, context.xml에 등로 이동하고 싶은

System.getProperty("com.company.custom.config") 

) 그러나 나는 그 일을 어떻게 할 것인지 잘 모르겠습니다.

제 질문은 두 부분입니다. 어디에서 (그리고 어떻게) 이러한 변수를 XML에 넣어야합니까? 그리고 코드에서이 변수에 어떻게 액세스합니까?

미리 감사드립니다. 이미 답변을 드렸다면 죄송합니다. 이 주제에 대한 내 search-fu가 실패했습니다.

답변

1

은 공식적으로 모든 JVM 옵션 (Windows 용) (Unix 용) setenv.sh 또는 setenv.bat에 하나를 이동 : 같은 서블릿 내부에서, 당신은 뭔가를 작성할 수 있습니다. 이 파일 is not present by default은 Tomcat에 있지만이 파일을 만들면 시작 스크립트에 의해 선택됩니다. 이 대신 server.xml의 사용해야하는 이유

이유는 server.xmlsetenv.sh을 제외한 다른 한 톰캣 버전에서 변경 될 수 있다는 점이다 (또는 .BAT)을 사용자 정의 완전히이다.

이 값을 읽는 것은 귀하가 지적한대로 System.getProperty(...)을 통해 이루어집니다.

+0

감사! 나는 이렇게 할 것입니다. – codeflayer

2

앱 별 구성 항목 인 경우 표준 위치는 <context-param> (web.xml)입니다. 다음과 같이 입력하십시오 :

<context-param> 
    <param-name>myvar</param-name> 
    <param-value>value</param-value> 
</context-param> 

ServletContext#getInitParameter(String)을 사용하여 코드에서이 값에 액세스 할 수 있습니다.

String myvar = getServletContext().getInitParameter("myvar"); 
+0

답변 해 주셔서 감사합니다. 그들은 특정 응용 프로그램이 아닙니다. 나는 그들을 tomcat/conf/web.xml에 넣을 수 있을까요? – codeflayer

+1

나는 그것이 효과가있을 것이라고 생각한다. 확인 테스트. – Asaph

+0

나는 그것을 밖으로 시도 할 것이다. 작동하면 나는 당신의 대답을 옳은 것으로 표시 할 것입니다. 빠른 답변 감사합니다. – codeflayer

관련 문제