В настоящее время я использую RT 4.4.3 в проекте и пытаюсь создать новый тикет с вложением, используя код Java.
Я пытался следовать инструкциям, предоставленным этот ресурс BestPractical размещен на GitHub и указан в этом списке запросов.
Фрагмент кода, который пытается выполнить операцию, выглядит следующим образом:
PostMethod mPost = new PostMethod(TicketListConstants.SEGNALAZIONI_RTIR_URI + "/ticket");
mPost.setRequestHeader("Content-type", "application/json");
mPost.setRequestHeader("Authorization", TicketListConstants.SEGNALAZIONI_RTIR_TOKEN);
/*String json = ;
NameValuePair[] data = {
new NameValuePair("content", json)
};*/
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request);
File file = uploadRequest.getFile("fileName");
String filename = uploadRequest.getFileName("fileName");
byte[] filecontent = this.encodeBase64(file);
mPost.setRequestBody("{ \"Queue\": \"Infosharing\", \"Subject\": \""+subject+"\",\"From\":\""+currentUser.getEmailAddress()+"\",\"To\":\"test@liferay.com\",\"Owner\":\""
+currentUser.getEmailAddress()+"\",\"Requestor\":\""+currentUser.getEmailAddress()+"\",\"Content\":\""+description+"\",\"AttachmentsContents\":[{\"FileName\":\""+filename+"\",\"FileType\":\"application/pdf\",\"FileContent\":\""+filecontent+"\"}]}");
HttpClient cl = new HttpClient();
String result = "";
String newId = "";
try {
cl.executeMethod(mPost);
result = mPost.getResponseBodyAsString();
if (result != null) {
JSONObject json = null;
try {
json = JSONFactoryUtil.createJSONObject(result);
} catch (JSONException e) {
_log.error("Error extracting ticket info: "+e.getMessage());
}
newId = json.getString("id");
}
} catch (UnsupportedEncodingException e){
_log.error("Error in searching tickets: "+e.getMessage());
} catch (IOException io) {
_log.error("Error in searching tickets: "+io.getMessage());
}
Итак, JSON I 'm отправка в RT выглядит следующим образом:
{ "Queue": "Infosharing", "Subject": "Tutto in uno","From":"test@liferay.com","To":"test@liferay.com","Owner":"test@liferay.com","Requestor":"test@liferay.com","Content":"Aggiungo tutto in un solo passaggio","AttachmentsContents":[{"FileName":"prova.txt","FileType":"plain/text","FileContent":""}]}
Проблема в том, что заявка создана правильно, но вложение не добавлено.
Я также пытался выполнить то же самое с использованием SOAPUI, но без вложениядобавляется в заявку, даже если ответ без ошибок.
Может ли кто-нибудь помочь мне, что я делаю неправильно?
РЕДАКТИРОВАТЬ 2019-06-10: поскольку, как сообщается здесь , по крайней мере, до конца декабря 2018 года:
СОЗДАНИЕ ПРИЛОЖЕНИЙ В настоящее время RT не позволяет создавать вложения через их API.
См. https://rt -wiki.bestpractical.com/wiki/REST#Ticket_Attachment
но в качестве временного обходного пути должна быть возможность публиковать вложения в комментарии к билетам, кто-нибудь может помочь найти решение этой проблемы?