Weird IllegalArgumentException - Spring 6.1 не может найти параметры метода контроллера, несмотря на то, что -parametersJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Weird IllegalArgumentException - Spring 6.1 не может найти параметры метода контроллера, несмотря на то, что -parameters

Сообщение Anonymous »

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

Код: Выделить всё

IllegalArgumentException
: имя аргумента типа [java.lang.Long] не указано, а информация об имени параметра недоступна через отражение. Убедитесь, что компилятор использует флаг -parameters.

Опция компилятора -parameters уже передана (проверено в журналах отладки Gradle, вероятно, из подключаемого модуля Spring Boot), и когда я запускаю javap для проверки скомпилированного класса, я вижу раздел метаданных MethodParameters с правильными аргументами метода.
Кроме того, эта проблема, похоже, возникает периодически (как наблюдалось в Datadog). Как и в случае, вызовы иногда завершаются успешно, а иногда завершаются неудачно, даже для одних и тех же методов.
Мы используем закрепленные номера версий Spring (3.3.13) и его зависимостей, поэтому маловероятно, что это какие-либо изменения в версии Spring. Кроме того, это было изменено давным-давно, поэтому не должно быть основной причиной.
Это оставляет мне две теории:
  • Ошибка в JVM. Мы используем OpenJDK версии 17.0.15+6-alpine-r0, хотя я не могу найти никаких открытых проблем для этой версии.
  • Ява-агент Datadog, который мы используем для инструментирования, каким-то образом портит метаданные MethodParameters классов контроллера.
В любом случае я не уверен, как это исследовать. Есть ли способ получить журналы отладки или проанализировать поведение Java-агентов?

Подробнее здесь: https://stackoverflow.com/questions/798 ... hod-parame
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»