Я могу успешно отправить запрос на вложение в сообщение электронной почты только в том случае, если мой файл содержит менее 100 символов.Для того же кода, когда я публикую большой файл, такой как 1Mb, я получаю динамическую ошибку
public enum Payload {
PAGING_COOKIE("@Microsoft.Dynamics.CRM.fetchxmlpagingcookie"),
CONTEXT("@odata.contex"),
ETAG("@odata.etag"),
ID("@odata.id"),
BIND("@odata.bind"),
VALUE("value"),
COUNT("@odata.count"),
NEXT_LINK("@odata.nextLink"),
NAVIGATION("_"),
ERROR("error"),
MESSAGE("message"),
INNER_ERROR("innererror"),
CODE("code"),
TYPE("type"),
STACK_TRACE("stacktrace");
....
}
@Stateless
public class ActivityMimeAttachmentRepository extends DynamicsRepository {
// Select
private static final String SELECT_GUID = "$select=" + ActivityMimeAttachmentBean.CrmFields.activitymimeattachmentid.name();
@Inject
private ActivityMimeAttachmentBuilder activityMimeAttachmentBuilder;
public void createAttachement(ActivityMimeAttachmentBean attachment) throws DynamicsException {
String url = activityMimeAttachmentBuilder.url(ActivityMimeAttachmentBean.RESOURCE_NAME, null, null, true);
// Construction des propriétés à créer
ArrayList<ActivityMimeAttachmentBean.CrmFields> crmFields = new ArrayList<ActivityMimeAttachmentBean.CrmFields>();
crmFields.add(ActivityMimeAttachmentBean.CrmFields.filename);
crmFields.add(ActivityMimeAttachmentBean.CrmFields.mimetype);
crmFields.add(ActivityMimeAttachmentBean.CrmFields.body);
crmFields.add(ActivityMimeAttachmentBean.CrmFields.subject);
crmFields.add(ActivityMimeAttachmentBean.CrmFields.objectid);
crmFields.add(ActivityMimeAttachmentBean.CrmFields.objecttypecode);
// Construction du payload
String payload = activityMimeAttachmentBuilder.build(false, attachment, crmFields.toArray(new ActivityMimeAttachmentBean.CrmFields[0])).toString();
// Création dans Dynamics CRM
super.create(url, payload, Header.RETURN_REPRESENTATION);
}
}
public JSONObject create(String url, String payload, Header...headers) throws DynamicsException {
WebClient webClient = build(url, false, authenticationService.getToken(false), null, headers);
Response response = webClient.post(payload);
if (401 == response.getStatus()) {
webClient = build(url, false, authenticationService.getToken(true), null, headers);
response = webClient.post(payload);
}
JSONObject entity = build(webClient, "POST", payload, response);
return entity;
}
Ошибка, которую я получаю: Причина: java.lang.Throwable: message: Ссылка на объект не установлена наэкземпляр объекта., тип: System.NullReferenceException, stacktrace: at в Microsoft.Crm.Extensibility.OData.EdmTypeConverte r.ConvertToCrmEntity (EdmEntityObject edmEntity, EntityReference entityReference, IEdmModel edmModelmeger.Exm.ExEx.Exchange.Exception).] (Регистратор ILogger, EventId eventId, ActivityType ActivityType, Func 1 func, IEnumerable
1 AdditionalCustomProperties) в Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute [TResult] (ILogger logger, XrmTelemetry *ctivityType ActivityType ActivityType ActivityType ActivityType Activity5ypefunc) at lambda_method (Closure, Object, Object [])
Когда я уменьшаю содержание тела до менее чем 100 символов, я не получаю эту ошибку, и файл прикрепляется к электронному письму.