# webDAV-EinstiegsFrage



## sigibe (15. Nov 2008)

Hallo zusammen,

Ich habe eine Java Applikation geschriben, welche unter anderem Ordner verwaltet. Nun möchte ich einige dieser Ordner per webDAV frei geben. Leider habe ich jedoch bezüglich webDAV noch keine Erfahrung. Kann mir da jemand helfen, wie ich in meiner JAVA-Applikation ordner freigeben kann und dann von einem anderen Ort per Client wieder darauf zugreifen kann?

Anders gesagt: mein Auftrag lautet: "implementieren sie einen webDAV server und einen webDAV client". Den Zweck habe ich oben beschrieben. Doch wie geh ich diese Aufgabe an?

Ich hoffe dies war so einigermassen verständlich. Die ganze Webgeschichte in Bezug auf Java ist für mich halt leider noch ziemliches Neuland!

Danke und Gruss
Sigibe


----------



## HoaX (16. Nov 2008)

ich würde das mittels eines bereits implementerten webserver mit webdav unterstützung lösen. gibt mehrere in java geschreibene. google


----------



## sigibe (23. Nov 2008)

Danke für die Antwort!

Ich habe leider keine Pure Java Serverimplementation finden können, welche webDAV unterstützt. Also habe ich es mal so gelöst: Ich benutze nun Jetty, den man auch als embedded web-server implementieren kann und habe nun vor, darauf das net.sf.webdav.WebdavServlet laufen zu lassen.

Ich hab das mal so implementiert:


```
public class JettyServer {

	private Server serverInstance;
	private int port;

	public JettyServer(int port) {
		this.port = port;
		this.setupServer();
	}

	private void setupServer() {
		this.serverInstance = new Server();
		this.setConnectorToPort(this.port);
		this.addWebDavServlet();
	}

	private void addWebDavServlet() {
		Context webDAV = new Context(this.serverInstance, "/webDAV/", Context.SESSIONS);
		WebdavServlet webDavServlet = new WebdavServlet();
		try {
			webDavServlet.init();
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		webDAV.addServlet(new ServletHolder(webDavServlet), "/");
	}

	private void setConnectorToPort(int portNumber) {
		Connector connector = new SelectChannelConnector();
		connector.setPort(portNumber);
		this.serverInstance.setConnectors(new Connector[] { connector });
	}

	/**
	 * Starts the server
	 */
	public void start() {

		try {
			this.serverInstance.start();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
}
```

Nun meine Frage: wie kann ich nun mit diesem webDAV servlet Ordner auf meinem FileSystem dynamisch (während der Laufzeit) freigeben? Ich denke dazu brauche ich nun HTTP-Anfragen? Oder wie genau kann/muss ich dieses Servlet verwenden? Hab bereits nach tutorials gegoogelt, doch hab nichts brauchbares gefunden!

Danke für die Hilfe und entschuldigung, dass ich nicht eine präziesere Fragestellung liefern kann (dafür müsste ich mehr Ahnung vom Thema haben --> Teufelskreis    )

Gruss


----------



## HoaX (24. Nov 2008)

wie du das servlet verwendest sollte in dessen doku stehen


----------

