2009-04-22 3 views
2

응용 프로그램을 Jetty에서 실행하고 있으며 응용 프로그램에서 자체 참조 절대 URL을 반환하도록합니다 (RSS 피드를 생성 할 때 클라이언트가 없이도 작업 할 수 있어야 함). "현재 URL"컨텍스트).응용 프로그램 서버에서 실제 (가상) 호스트 이름 얻기

문제는 응용 프로그램을 배포 할 호스트 이름을 미리 알 수 없기 때문에 여러 호스트 이름이 동일한 가상 호스트 환경에 매핑되는 가상 호스팅 환경에 배포 될 가능성이 큽니다 IP 주소. HttpServletRequest.getLocalName()을 사용해 보았지만 요청이 수신 된 IP 주소 (일반적으로 로컬 호스트 파일에 설정되어있는 호스트 이름)의 해결 된 호스트 이름 [1]을 반환하고 클라이언트가 지정한 URL의 호스트 이름은 반환하지 않습니다. HTTP 요청

기본적으로 CGI에서 환경 변수 SERVER_NAME이 무엇인지 알고 싶지만 Java API가 제공하지 않는 것처럼 보입니다. 어떤 도움을 주시면 감사하겠습니다.

[1] 운이 좋은 경우에만 - 일부 설정에서는 IP 주소 만 반환합니다.

답변

3

ServletRequest.getServerName()을 사용하여 "Host"헤더에서 가상 호스트 이름을 가져옵니다. 이것은 CGI의 SERVER_NAME 변수와 동일합니다.

+0

감사합니다 :-) (이것은 저에게 어리석은 짓이었습니다. – Guss