2012-08-02 3 views
1

tomcat webdav를 사용하여 현재 파일/문서를 특정 webdav 위치에 업로드 할 수 있습니다. 이 정도로는 괜찮습니다.응용 프로그램에서 새 디렉토리 만들기

그러나 이제는 webdav 위치에 새 디렉토리 (조건에 따라)를 만들고 새로 만든 디렉토리에 파일이나 문서를 업로드해야한다는 요구 사항이 있습니다.

이것은 자바를 통해 달성해야합니다. file.mkdir()을 사용하여 디렉토리를 만들려고했습니다. 그러나 그것은 나에게 거짓을 돌려주고있다.

누군가이 빛을 어떻게 극복 할 수 있습니까?이 상황을 어떻게 극복 할 수 있습니까?

종류는 (MKCOL 그냥 GET, POST 등처럼)

Subbu

+0

대상 디렉토리에 쓸 수있는 권한이 있습니까? WebDAV 서버는이 디렉토리를 만들기 위해 코드가있는 곳입니까? –

+0

예, 권한이 있습니다. 아니, 그것은 별도의 응용 프로그램이며 webdav 디렉토리에 폴더/디렉토리를 만들고 싶습니다. – Subbu

+0

HTTP를 사용하여 WebDAV 서버를 호출하지 않고 "MKCOL"요청을 발행 할 이유가 있습니까? –

답변

1

이 WebDAV를 서비스에 HTTP 연결을 확인하고 MKCOL 요청을 발행 간주한다. 다음과 같이 입력하십시오 :

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

201 응답이 필요합니다. 다른 것을 얻으면 디렉토리 생성에 실패했음을 의미합니다.

+0

고맙습니다. 크리스토퍼. 이제 webdav에서 폴더를 만들 수 있습니다. – Subbu

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 "을 포함하는 줄에 생성 된 객체에서 호출해야합니다. –

+0

물론 감사합니다. 크리스토퍼 – Subbu

관련 문제