2014-04-18 3 views
1

나는 XML 파일이 서버의 ROOT 폴더에 보관 수정 아파치 톰캣 서버에 배포 이클립스API을 개발하기.는 아파치 톰캣 서버 경로와 포트를 동적으로

아파치 톰캣 내 시스템에서 D 드라이브에 설치되어 있고, 따라서 나는 사용하는 것도 내가 서버를 구성한이

new File("D:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\ROOT\\example\\example.xml") 

같은 API에 해당 경로를 하드 코딩 한 포트 8080 따라서 API의 URI 경로를 이와 같이 하드 코드했습니다.

String uriPath = "http://localhost:8080/example/example2"; 

그리고 잘 작동합니다.

는하지만 지금은 아파치 톰캣을 가진 다른 시스템에 WAR 파일의 형태로 동일한 API를 배포합니다.

어떻게 아파치 톰캣 ROOT 폴더 경로 하나의 API는 모든 시스템 작동 프로그램 있도록 해당 시스템에 대한 포트 번호를받을 수 있습니까? 어떻게 그것을 API에 통합합니까?

답변

3

JEE 사양에는 이러한 이유를 설명하는 데는 여러 가지 이유가 있지만, 별개로 바람둥이 위치를 판별하는 데 플랫폼에 독립적 인 방법을 사용할 수 있습니다.

시스템은 시작할 때 CATALINA_HOME 및 CATALINA_BASE라는 두 개의 변수를 정의합니다. 당신은 System.getProperty ("catalina.base")

를 사용하여 시스템에서 CATALINA_BASE를 얻을 수 있어야합니다 당신이 가설이 같은 경로를 구축 할 수 있습니다에서 : URI 경로로

final String catalinaBase= System.getProperty("catalina.base"); 
final File catalinaBaseDir= new File(catalinaBase); 
final File exampleXML= new File(catalinaBase, "webapps/root/example/example.xml"); 

을, this article은 원하는 것을하기에 충분한 참고 자료를 제공해야합니다.