начинает работать с Jackrabbit 2.6.3 и общемирового HTTPClient 3.Apache Jackrabbit webDAV PUT Method.
Я написал простой клиент Webdav, чтобы загрузить файл на сервер и хочу проверить его на хранилище по умолчанию автономного сервера Jackrabbit в. Просто я просто хочу поместить файл в репозиторий по умолчанию.
мой httpclient подключается, и метод начинает буферизацию моего файла. Проблема в том, что я не могу работать над тем, какой URL должен указывать мой метод http, чтобы правильно поместить его в репозиторий. Автономный сервер работает на:
http://localhost:8080.
Я, кажется, либо получить 405 PUT не поддерживается или 404 или 403 или еще более любопытным «хранилище„/“не начинается с„/ по умолчанию“для всех URL-адресов . Я попытался я могу видеть содержимое репозитория по умолчанию, если я указываю мой браузер по адресу:.
http://localhost:8080/repository/default/
Просто, на мой вопрос, что такое URL, чтобы сделать это с PutMethod Как рудиментарным, как это звучит
Я включил некоторый укороченный код для класса, который я написал, в частности метод Я работаю в данный момент, я думаю, этого должно быть достаточно, чтобы показать, что мой подход верен.
public void insertFile(byte[] content, String id) throws Exception {
PutMethod httpMethod = new PutMethod("http://localhost:8080/repository/default/");
InputStream is = new ByteArrayInputStream(content);
FileMetaData meta = new FileMetaData();
meta.address = destUri;
meta.id = id;
meta.mimeType = Files.probeContentType(Paths.get(meta.address));
RequestEntity requestEntity = new InputStreamRequestEntity(is, meta.mimeType);
httpMethod.setRequestEntity(requestEntity);
try {
int statusCode = client.executeMethod(httpMethod);
if (statusCode != HttpStatus.SC_OK) System.err.println("Method failed: " + httpMethod.getStatusLine());
byte[] responseBody = httpMethod.getResponseBody();
System.out.println(new String(responseBody));
} catch (HttpException e) {
System.err.println("Fatal protocol violation: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println("Fatal transport error: " + e.getMessage());
e.printStackTrace();
} finally {
httpMethod.releaseConnection();
}
}
Я уверен, что это простой ответ, но траление документацию, кажется, не отображаются какие-либо ресурсы или обучающие программы, связанные с этим. Любая помощь оценивается.