2011-05-04 8 views
5

java의 url (http : // localhost : 8080/myApp)의 절대 경로를 검색하는 방법이 있습니까? 시나리오는, 내가 tomcat 서버에있는 CSV 파일에 연결해야합니다. 이 문은 절대 경로를 입력해도 제대로 작동하지만 getAbsolutePath()를 사용하여 URL의 경로를 검색 할 수있는 솔루션이 있습니다. 잘못하면 죄송합니다.java에서 URL의 절대 경로 가져 오기

Connection conn = DriverManager(getConnection("jdbc:relique:csv:/home/apache-tomcat-6.0.26/webapps/myApp/")) 

미리 감사드립니다.

답변

9

정확하게 원하는대로 수행 할 수있는 ServletContext.getRealPath()을 사용할 수 있습니다.

이 아니라 모든 상황에서 반드시이 작동한다는 점에 유의하십시오. 예를 들어 Tomcat이 압축을 풀지 않고 .war 파일을 배포하도록 구성된 경우 null을 반환합니다.

+0

감사합니다 ... 당신은 javax.servlet.ServletContext에 오류 메시지 "getRealPath (java.lang.String의)를 반환 제안 된 문 (희망 나는 올바른 질문을 ... 있어요)() "에 적용 할 수 없습니다. – Ria

+0

컨텍스트 경로를 기준으로 (URL) 경로를 전달해야합니다. 그러므로 webapp의 "루트"디렉토리를 알고 싶으면' "/"'을 전달하십시오. –

+0

ServletContext.getRealPath ("/"); 작동합니다 ... 요아킴에게 감사드립니다 ... – Ria

0

자바에 대해 많이 알지 못합니다.

May be getServletContext().getContextPath() is something you are looking for

편집 :
Or may be getRealPath()

+0

답장을 보내 주셔서 감사합니다.이 문은/myApp를 반환합니다. 하지만 이것과 같은 것이 필요합니다 .../home/user/apache-tomcat/webapps/myApp – Ria

+0

이미 JAVA에 대해 많이 모른다. getServletContext(). getRealPath()는 어떻습니까? – Mayank

+0

나는 그것을 시도했다. ServletContext.getRealPath ("/") worked .. – Ria

-1

Tomcat이 HTTP 서버가 아닙니다. 모두 tomcat urls 파일이 아니라 참조 서비스입니다.

http URL을 통해 가져 오려는 경우 csv 파일을 요청하는 다른 서비스를 구현해야합니다. URL이 http://localhost/myapp/input.csv 인 경우 httpd와 같은 http 서버가 필요합니다.

답장을 보내

+0

Andreas, 그리고 ServletContext.getRealPath ("/")를 사용했다. 그것은 작동 ... – Ria

관련 문제