# Filesystemzugriff von einer Bean?



## Trapp (30. Aug 2005)

Hallo,

in der EJB-Spezi habe ich gelesen, dass der Dateizugriff von einer Bean aus nicht unterstützt wird (obwohl manche Implementierungen dies tun).

Gibt es denn eine Möglíchkeit für einen Zugriff z.B. durch java.io.* von eienr Session-Bean aus?

Viele Grüße
Tobias


----------



## Bleiglanz (30. Aug 2005)

nein, obwohl das uU nicht "abgefangen wird"; trotzdem sollte man das nicht tun!


----------



## Trapp (30. Aug 2005)

Bleiglanz hat gesagt.:
			
		

> nein, obwohl das uU nicht "abgefangen wird"; trotzdem sollte man das nicht tun!



Gibt es nicht noch Alternativen in Form von Ressourcenmanagern, die einen geregelten Dateizugriff ermöglichen?   :bahnhof: 

Viele Grüße
Tobias


----------



## Gumble (3. Apr 2006)

*schieb*

Moechte in einer (Session)Bean testen, ob ein bestimmtes jsp existiert. Kann ich das machen, wenn ja wie?

mit this.getClass().getResource("/"); lande ich im classes ordner der Webapp
mit this.getClass().getResource("../../"); lande ich aber voellig falsch (ganz anderes deployment)
die jsp liegen im Webapp root. wie komm ich nun dahin?


----------



## Gumble (3. Apr 2006)

geht, aber ist irgendwie haesslich:

```
URL url = this.getClass().getResource("/");		
File f = new File (url.getFile());
File root = f.getParentFile().getParentFile();
String taskPath = root.getPath() + "\\" + jspName + ".jsp";
File taskJSP = new File(taskPath);
if (!taskJSP.exists())
	//jaha
```
comments?


----------



## clemson (3. Apr 2006)

das geht innerhalb eines HttpServlet's bzw. ServletContexts:


```
javax.servlet.http.HttpServlet servlet;
...
String path = servlet.getServletContext().getRealPath("/WEB-INF/page/page.jsp"); // get the real path on the server, of a specific file
File datei = new File( path ); // create file object of specific path
```


----------



## Gumble (5. Apr 2006)

Naja, in meiner Bean hab ich erstmal keinen HttpRequestobjekt. Komme aber an den Context:

```
String path = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath();
```
das Problem ist, dass ich das Filehandle nicht anlegen kann (und deshalb liefert die Existenzpruefung immer false):

```
String taskPath = path + "\\" + jspName + ".jsp";		
File taskJSP = new File(taskPath);
if (!taskJSP.exists())
```
File() will wohl den absoluten Pfad...


----------

