2012-08-02 39 views
1

使用tomcat webdav,目前我能夠將文件/文檔上傳到特定的webdav位置。就此而言,這很好。從應用程序創建一個新目錄

但是現在我有一個要求,我必須在webdav位置創建一個新的目錄(基於一個條件)並將文件或文檔上傳到新創建的目錄中。

這個我必須通過Java來實現。 我試圖用file.mkdir()創建一個目錄。但它對我來說是錯誤的。

任何人都可以拋出一些光線我怎麼能克服這種情況?

親切的問候

Subbu

+0

您有權限寫入目標目錄嗎? WebDAV服務器是代碼生成此目錄的地方嗎? – 2012-08-02 14:54:50

+0

是的,我有權限。 而不是,它是一個單獨的應用程序,並希望在webdav目錄中創建文件夾/目錄。 – Subbu 2012-08-03 11:33:31

+0

是否有任何理由不使用HTTP調用WebDAV服務器併發出'MKCOL'請求? – 2012-08-03 15:02:34

回答

1

建立HTTP連接到您的WebDAV服務,併發出MKCOL請求(MKCOL就像GET,POST等)。類似這樣的:

MKCOL /the/directory/you/want/to/create HTTP/1.1 

您應該期待201響應。如果你有其他的東西,這意味着目錄創建失敗。

+0

非常感謝,克里斯托弗。 現在我可以在webdav中創建一個文件夾。 – Subbu 2012-08-07 06:00:50

0

謝謝克里斯託弗!

我想說明我的代碼使用示例應用程序創建一個webdav文件夾。

import org.apache.commons.httpclient.*; 
import org.apache.commons.httpclient.auth.*; 
import org.apache.jackrabbit.webdav.client.methods.*; 

import java.io.*; 


public class CreateWebdavFolderUsingHttpClient 
{ 

    private static String url = "http://localhost:8081/webdav/subbu/MyWebdavFolder"; 

    /** 
    * DOCUMENT ME! 
    * 
    */ 
    public static void main(String[] args) 
    { 
      String response = null; 
      // Create an instance of HttpClient. 
      HttpClient client = new HttpClient(); 
      client.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("tomcat", "tomcat")); 

      DavMethod method = new MkColMethod(url); 
     try 
      { 
       client.executeMethod(method); 
       response = method.getStatusCode() + " ----- " + method.getStatusText(); 
       client.executeMethod(new MkColMethod(url + "/10300")); 
       response = method.getStatusCode() + " ----- " + method.getStatusText(); 
      } 
      catch (IOException ex) 
      { 
      } 
      finally 
      { 
       method.releaseConnection(); 
      } 
      System.out.println(response); 
    } 
} 
+0

不要忘記檢查第一個'executeMethod'調用的返回碼 - 否則第二個可能會失敗。另外,如果必須在'Method'對象上調用'releaseConnection',請確保在包含'「/ 10300」'的行上創建的對象上調用它。 – 2012-08-07 13:59:04

+0

當然,謝謝克里斯託弗 – Subbu 2013-01-28 06:38:24

相關問題