2011-11-05 10 views
5

Próbowałem odczytać plik z mojego „RemoteServiceServlet” ale jest toGWT - RPC - dostać aplet bezwzględna ścieżka do reż

  • Chcę utworzyć dir która ścieżka jest związany z serwletu jak

absolute_servlet_path/mypackage/

Ale problem jest ...

kod jak

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

... daje nie "C:/..." ale "/" tylko więc kod nie może być używany z obiektu java.io.File.

Moje pytanie brzmi: jak mogę użyć pliku java.io.file z RemoteServiceServlet?

Odpowiedz

3

OK ... Musiałem zachować kopanie ...

Wciąż szukałem sposobu serwletu ścieżkę względną, ale bezwzględną jednego; a teraz znowu próbowałem używać kontekstu ale tym razem zmodyfikowany mojego kodu w tym kierunku ...

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

... i to działało na moim Tomcat :)

Mam nadzieję, że ratuje jedno za dzień

Dzięki

+0

Mam nadzieję, że rozumiesz, że ten katalog jest miejscem, w którym wdrożono plik WAR. Po ponownym wdrożeniu aplikacji wszystko, co umieścisz, najprawdopodobniej zostanie usunięte. – Strelok

+0

Pewnie :) Potrzebowałem go tylko do moich tymczasowych plików aplikacji internetowych. Nie używałem user.home itp., Ale mam powiązaną ścieżkę. Więc jest OK jak dla mnie :) – user592704

+2

Trochę niekonwencjonalny. Być może chcesz rzucić okiem na bardziej standardowe sposoby tworzenia plików tymczasowych, omówione tutaj http://stackoverflow.com/questions/617414/create-a-temporary-directory-in-java – Strelok

1

Myślę, że źle rozumiesz działanie serwletów. "Serwlet" to po prostu klasa skonfigurowana za pomocą pliku web.xml do przetwarzania żądań na podanej ścieżce pod adresem URL. Jest teraz w jakiś sposób związany z systemem plików.

Dlaczego chcesz utworzyć folder w stosunku do adresu URL serwletu? Co próbujesz osiągnąć?

+0

Próbuję uzyskać ten sam efekt, co aplikacja komputerowa. Jest to domyślna ścieżka taka jak "." jak dla obiektu File. Więc nie używać user.home lub czegoś :) – user592704

Powiązane problemy