2011-11-05 10 views
5

ho cercato di leggere un file con il mio "RemoteServiceServlet", ma la cosa èGWT - RPC - ottenere servlet percorso assoluto per rendere dir

  • Voglio creare una directory quale percorso è legato alla servlet come

absolute_servlet_path/pacchetto/

Ma il problema è ...

codice come

ServletContext servletContext = this.getServletContext(); 
String pathContext = servletContext.getRealPath(""); 

... dà non "C:/..." ma "/" solo in modo che il codice non può essere utilizzata con oggetto java.io.File.

Quindi la mia domanda è come posso utilizzare java.io.File con RemoteServiceServlet?

risposta

3

OK ... Ho dovuto continuare a scavare ...

Eppure ero alla ricerca di un modo di percorso relativo servlet, ma un assoluto uno; e ora di nuovo ho cercato di utilizzare il contesto, ma questa volta ho modificato il mio codice in questa direzione ...

ServletContext servletContext = this.getServletContext(); 
String pathContext = servletContext.getRealPath("/WEB-INF/"); 

... e ha funzionato per il mio Tomcat :)

Spero che salva la propria giornata

Grazie

+0

Spero tu capisca che questa directory è dove viene distribuito il tuo file WAR. Quando ridistribuisci la tua applicazione, molto probabilmente tutto verrà cancellato. – Strelok

+0

Sicuro :) Ne avevo bisogno solo per i miei file temporanei di app web. Non stavo usando user.home ecc ma per avere un percorso correlato. Quindi è OK come per me :) – user592704

+2

Un po 'non convenzionale. Forse vuoi dare un'occhiata a modi più standard per creare file temporanei, discussi qui http://stackoverflow.com/questions/617414/create-a-temporary-directory-in-java – Strelok

1

Penso che tu fraintenda come funzionano le servlet. Un "servlet" è solo una classe configurata tramite il file web.xml per elaborare le richieste su un determinato percorso in un URL. È in qualche modo collegato al file system.

Perché si desidera creare una cartella relativa all'URL del servlet? Cosa stai cercando di realizzare?

+0

sto solo cercando di ottenere lo stesso effetto del desktop app fa. È il percorso predefinito come "." come per l'oggetto File. Quindi non usare user.home o qualcosa :) – user592704