Liferay: проблема в вызове json-rpc для добавления файла - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь вызвать метод записи add-file-entry из java-клиента, используя шаблон spring rest. Но получая исключение приведения класса ... я думаю, что когда я отправляю файл inputtream, объект .it идет как строка, но я использую знак + перед параметром 'is', чтобы сообщить liferay, что это объект. но все равно получаю сообщение об ошибке .., пожалуйста, помогите мне в этом или скажите, есть ли другой способ опубликовать запись add-file из java-клиента.

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

MultipartFile file = getMultipartFile();
//File convFile = new File( file.getOriginalFilename());
//file.transferTo(convFile);
JSONObject body = new JSONObject();
body.put("method", "add-file-entry");
body.put("jsonrpc", "2.0");
body.put("id", 0);
JSONObject param = new JSONObject();
param.put("repositoryId", 10156);
param.put("folderId", 521203);
param.put("sourceFileName", file.getOriginalFilename());
param.put("mimeType", file.getContentType());
param.put("title", file.getOriginalFilename());file.getInputStream();
param.put("description", StringPool.BLANK);
param.put("changeLog", StringPool.BLANK);
param.put("+is", file.getInputStream());
param.put("size", file.getSize());
param.put("serviceContext", "{}");
body.put("params", param);
System.out.println("printing");
System.out.println(body.toString());

HttpEntity<String> requestEntity =
    new HttpEntity<>( body.toString(),getUserCredentialsAndHeaders());

ResponseEntity<String> response =
    documentsRestTemplate.exchange(
        "https://tst-lab2-navigator02.lab.hostedsolutions.com/api/secure/jsonws/dlapp",
        HttpMethod.POST,
        requestEntity,
        String.class);

System.out.println(response);

Получение <200, {"id": 0, "error": {"code": - 32603, "message": "java.lang.ClassNotFoundException: java.io.ByteArrayInputStream@275710fc"}, "jsonrpc" : "2.0"} в качестве ответа. Пожалуйста, помогите мне в этом. </p>

...