Как загрузить документы из liferay из стороннего приложения .. используя liferay jsonws или любым другим способом - PullRequest
0 голосов
/ 18 января 2019

Привет! Я использую сервисы liferay / api / secure / jsonws для загрузки документов, получения документов из внешнего приложения, точно так же, как я хочу загрузить документы, также я проверил свой liferay jsonws, нет метода или сервис, который я могу использовать для загрузки, или я не знаю об этом, пожалуйста, предложите мне способ загрузки документов из стороннего приложения, используя jsonws или любым другим способом, также хорошо.

Изменить после того, как я узнал, как загрузить документ.

Привет! Я попытался загрузить документ liferay из стороннего приложения с помощью getURl, но каждый раз для всех документов я получаю содержимое страницы входа в систему liferay

Я уже пробовал вызов json-rpc get-file-as-stream, но это также дает мне нулевой ответ

код, который я использовал:

 final HttpHost targetHost = new HttpHost(hostname.trim());
    System.out.println(targetHost.getHostName());
    UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
    System.out.println(creds);
    final AuthScope authscope = new AuthScope(targetHost);
    httpclient.getCredentialsProvider().setCredentials(authscope, creds);

    final AuthCache authCache = new BasicAuthCache();
    final BasicScheme basicAuth = new BasicScheme();
    authCache.put(targetHost, basicAuth);

    final BasicHttpContext localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.AUTH_CACHE, authCache);

    final HttpGet httpget = new HttpGet(hostname+"/documents/" + groupId + "/" + folderId + "/" + filename);


    final HttpResponse response = httpclient.execute( httpget, localContext);

    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        final org.apache.http.HttpEntity entity = response.getEntity();

        if (entity != null) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            entity.writeTo(baos);
            return baos.toByteArray();
        }
    }
    return null;
} finally {
    httpclient.getConnectionManager().shutdown();
}

}

Я добавляю базовый заголовок аутентификации, чтобы исправить имя пользователя и пароль, не знаю, как появляется эта страница входа в систему, есть ли какие-либо разрешения, которые мне нужно изменить, или какие-либо проблемы конфигурации, пожалуйста, помогите в этом.

1 Ответ

0 голосов
/ 18 января 2019

Вы можете использовать Liferay WebDav Services для загрузки файлов из вашей библиотеки документов. Пути к загрузке можно проверить внутри панели управления при нажатии на запись файла (ссылка на URL-адрес WebDAV). Пути обычно выглядят так: / webdav / {site-name} / document_library / {имя-папки} / {имя-файла} В противном случае вы можете имитировать URL-адреса запроса, которые Liferay создает внутри портлета документов-носителей, чтобы загрузить запись файла. Но вы должны позаботиться об аутентификации, когда ваши файлы (и папки) не видны гостям.

...