2011-05-04 75 views
5

¿Hay alguna manera de recuperar la ruta absoluta de url (http: // localhost: 8080/myApp) en java. El escenario es que necesito conectarme al archivo csv ubicado en el servidor tomcat. La declaración funciona bien si ingreso la ruta absoluta, pero ¿hay alguna solución para recuperar la ruta de la URL usando getAbsolutePath()? Disculpe si estoy equivocado.Obtener ruta absoluta de una url en java

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

Gracias de antemano.

Respuesta

9

Puede usar ServletContext.getRealPath(), que hace exactamente lo que desea.

Tenga en cuenta que no no necesariamente funcionan en todas las situaciones. Por ejemplo, si su Tomcat está configurado para implementar el archivo .war sin desempaquetarlo, entonces devolverá null.

+0

Gracias por su respuesta ... La declaración Sugeriste devuelve un mensaje de error "getRealPath (java.lang.String) en javax.servlet.ServletContext no se puede aplicar a() " – Ria

+0

Necesita pasarle una ruta (URL) relativa a su ruta de contexto. Entonces, si quieres saber el directorio "raíz" de tu aplicación web, simplemente pasa ''/"'. –

+0

ServletContext.getRealPath ("/"); funciona .... Gracias Joachim .. – Ria

0

No sé mucho sobre JAVA.

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

EDIT:
Or may be getRealPath()

+0

Gracias por su respuesta ... Esta afirmación simplemente devuelve/myApp. Pero necesito algo como esto .../home/user/apache-tomcat/webapps/myApp – Ria

+0

Bueno, como ya dije, no sé mucho sobre JAVA. ¿Qué pasa con getServletContext(). GetRealPath()? – Mayank

+0

Lo intenté ... ServletContext.getRealPath ("/") funcionó .. – Ria

-1

Tomcat no es un servidor http. Todos tomcat urls servicios de referencia, no archivos.

Tendrá que implementar otro servicio que envíe el archivo csv cuando lo solicite, si desea obtenerlo a través de cualquier URL http. Las URL's como http://localhost/myapp/input.csv requieren un servidor http como apache httpd.

(espero que me dieron su pregunta correcta ...)

+0

Sí Andreas, y usé ServletContext.getRealPath ("/"). Funciona... – Ria

Cuestiones relacionadas