Вы вызвали функцию «Выбор значения» со следующими аргументами: в mule 4 - PullRequest
0 голосов
/ 28 мая 2020

Я запустил код в режиме отладки и понял, что нижеприведенное сообщение об ошибке появляется в пути error.exception.cause.errorMessage.typedValue.value.

enter image description here

{
   "error": "authentication failed: Could not bind with your username/pw: LDAP Result Code 49 \"Invalid Credentials\": 80090308: LdapErr: DSID-0C090442, comment: AcceptSecurityContext error, data 52e, v3839\u0000"
}

Но когда я пытаюсь захватить значение

(read(error.exception.cause.errorMessage.typedValue.value,"application/json"))

в переменной, выдает ошибку ниже.

ERROR 2020-05-28 08:43:56,779 [[MuleRuntime].io.01: [proc-brain-usage-sync-batch].send-usage-data-to-brain.BLOCKING @164a6d7b] [event: 2ec6d1e1-a049-11ea-9b85-00059a3c7a00] org.mule.extension.jsonlogger.JsonLoggerExtension: Failed parsing field: content
org.mule.runtime.core.api.expression.ExpressionRuntimeException: "You called the function 'Value Selector' with these arguments: 
  1: String ("{\"error\":\"authentication failed: Could not bind with your username/pw: LD...)
  2: Name ("value")

But it expects one of these combinations:
  (Array, Name)
  (Array, String)
  (Date, Name)
  (DateTime, Name)
  (LocalDateTime, Name)
  (LocalTime, Name)
  (Object, Name)
  (Object, String)
  (Period, Name)
  (Time, Name)

5|  brainerror: write(error.exception.cause.errorMessage.typedValue.value, "application/json") default "" 
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
  at write (line: 5, column: 20)
  at main (line: 5, column: 14)" evaluating expression: "output application/json ---
{
 usageMetadata: vars.usageMetadata,
 attributes: attributes,
 brainerror: write(error.exception.cause.errorMessage.typedValue.value, "application/json") default "" 
}".
Caused by: org.mule.runtime.api.el.ExpressionExecutionException: You called the function 'Value Selector' with these arguments: 
  1: String ("{\"error\":\"authentication failed: Could not bind with your username/pw: LD...)
  2: Name ("value")

But it expects one of these combinations:
  (Array, Name)
  (Array, String)
  (Date, Name)
  (DateTime, Name)
  (LocalDateTime, Name)
  (LocalTime, Name)
  (Object, Name)
  (Object, String)
  (Period, Name)
  (Time, Name)

5|  brainerror: write(error.exception.cause.errorMessage.typedValue.value, "application/json") default "" 
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Как я могу зафиксировать значение в пути ' error.exception.cause.errorMessage.typedValue.value 'как мы фиксируем error.description?

1 Ответ

1 голос
/ 28 мая 2020

Ваша error.exception.cause.errorMessage.typedValue.value - это строка, и вы пытаетесь преобразовать ее в JSON для записи. Не преобразовывать - писать как есть (уже строка).

Другими словами - не использовать запись - строка уже есть строка.

Или, может быть, вам нужно наоборот? Чтобы изменить String на JSON? Это более распространенная потребность, и это выполняется функцией чтения. https://simpleflatservice.com/mule4/ChangeStringToJsonOnTheFly.html

...