2015-12-03 2 views
0

Il est un bon exemple montrant comment mettre un fichier sur le serveur WebDAV:Comment obtenir un contenu de fichier à partir de WebDAV via la bibliothèque Apache Jackrabbit?

Java: How to upload a file to a WebDAV server from a servlet?

Mais comment puis-je obtenir un contenu de fichier?

Il existe une classe MethodPut pour la commande PUT, mais il n'y a pas de GetMethod approprié (bien que l'énumération DavMethods.METHOD_GET soit présentée).

+0

https://github.com/lookfirst/sardine/wiki/UsageGuide#inputstream-getstring-url ne fonctionne pas? –

+0

Malheureusement Sardine est incompatible avec mon serveur Oracle pour une raison quelconque (le serveur abandonne la connexion bien qu'il fonctionne bien avec le PUT de Jackrabbit). –

Répondre

0

J'ai résolu la tâche 1) en implémentant ma propre classe pour la méthode GET 2) en lisant les octets de réponse qui représentent le contenu du fichier. Je préférerais trouver une solution plus simple dans Jackrabbit encore.

public class MyGetMethod extends DavMethodBase { 
    public MyGetMethod(String uri) { 
     super(uri); 
    } 
    public String getName() { 
     return DavMethods.METHOD_GET; 
    } 
    public boolean isSuccess(int statusCode) { 
     return statusCode == 200; 
    } 
} 

static void jackrabbitGet() throws Exception { 
    HttpClient client = new HttpClient(); 
    Credentials creds = new UsernamePasswordCredentials("user", "pass"); 
    client.getState().setCredentials(AuthScope.ANY, creds); 
    MyGetMethod method = new MyGetMethod(url goes here); 
    client.executeMethod(method); 
    if (method.isSuccess(method.getStatusCode())) { 
     byte[] resp = method.getResponseBody(); 
     System.out.println("Got response: " + resp.length + " bytes"); 
    } 
} 
+0

Vous devez marquer votre réponse comme une solution. –