Описание тега java-assist

1 ответ

Ошибки при изменении существующего класса с использованием JavaAssist

Я работаю над следующей задачей CodeWars: https://www.codewars.com/kata/hack-22/train/java Вот что я написал: public static Yossarian loophole() throws Throwable { ClassPool pool = ClassPool.getDefault(); //Loader cl = new Loader(pool); CtClass yoss…
01 фев '19 в 23:39
0 ответов

БД прибора и время ответа на сервисный запрос http

Я строю Java-агент, который в основном инструмент для захвата времени ответа DB или HTTP-вызова. Один из способов - написать аннотацию, а затем аннотировать метод, который обернет вызов DB/http. И на основе аннотации мы можем добавить время начала и…
08 май '19 в 16:02
1 ответ

Как поменять тела методов под Android

В чистой Java с помощью агентов внедрения и java существует способ заменить тело метода во время выполнения. Unfrotunately java.lang.instrument.Instrumentation недоступно под Android. Я проверил все другие альтернативы, например, описанную здесь в s…
09 июн '19 в 12:53
1 ответ

Изменение кода с помощью javassist не имеет никакого эффекта (MethodCall)

У меня есть такая простая функция: public int id() { return 0; } У меня есть такая тестовая функция: void test() { int a = id(); int b = id(); int c = id(); int d = id(); int e = id(); int f = id(); System.out.println(a+" "+b+" "+c+" "+d+" "+e+" "+f…
04 ноя '19 в 01:10
0 ответов

Как получить уведомление, когда выполняется метод из другой JVM, и получить дескриптор аргументов

Есть ли способ получить уведомление при вызове метода из другой JVM. Dev Env: JDK8, Windows 10 (позже в облаке для развертывания). У меня работает несколько приложений Java, одно на сервере приложений, а другое - это автономный пакетный процесс. Вся…
24 фев '20 в 22:35
1 ответ

В Javassist, как установить тип возвращаемого значения метода java.lang.Double при создании динамического метода с использованием CtMethod

Мне нужно динамически создавать класс и метод во время выполнения. Для этого я использую Javassist: Метод, который я хочу создать динамически: public Double formula1(FormulaAPI api) { return api.evaluate(\"L\"); } Если я передам весь вышеуказанный м…
15 мар '20 в 16:29
1 ответ

Javassist - Числовые операции в теле метода CtMethod выдают java.lang.VerifyError

См. Ниже код создания класса и метода с использованием javassist: public Class generateClass(String className, String methodName) throws CannotCompileException, NotFoundException { ClassPool pool = ClassPool.getDefault(); CtClass cc = pool.makeClass…
16 мар '20 в 06:59
0 ответов

Javassist.CannotCompileException при попытке создать метод с массивом String и Object в качестве входных параметров

Мне нужно создать метод с использованием JavaAssist CtMethod. Этот метод должен принимать строку и массив объектов в качестве входных параметров, как показано ниже. String methodBody = "$1.look(\"" + (lname).replace("\"", "").trim() + "\"" + " ," + …
21 мар '20 в 12:17
0 ответов

Java Добавление поля и метода в скомпилированный класс и перезагрузка с помощью загрузчика классов

Я хотел бы добавить поле вместе с его получателем / установщиком в скомпилированные классы Java, которые загружаются в приложение загрузки Spring. Мне удалось изменить класс с помощью JavaAssist и ASM. Но проблема в том, что это не позволяет мне пер…
0 ответов

Исключение в потоке "main" java.lang.IllegalStateException: не удалось преобразовать класс с именем

Я использую JAVA 1.8 с версией Javaassist как 3.24.0 и power mock 1.7.4. Я сталкиваюсь с этой проблемой, когда включаю класс в @PrepareForTest. Здесь класс MainClass зависит от экземпляра serverCommunicator.class. public class MainClass { public voi…
05 авг '20 в 08:33
0 ответов

ClassNotFound Exception при попытке десериализации класса, созданного с помощью JavaAssist

У меня есть приложение, которое работает на Tomcat/Jboss на распределенных серверах. Приложение запускается на Spark master/slave. Я использую JavaAssist для создания динамического класса. Мне нужно сначала сериализовать это, затем десериализовать, …
1 ответ

Как получить правильный номер строки всех методов с помощью javaassist или любого другого api?

Я не могу найти правильный набор методов. Немногие получают должным образом, немногие - нет. for (CtMethod declaredMethod : declaredMethods) { int methodLineNumber = declaredMethod.getMethodInfo().getLineNumber(0); } 1) В чем ошибка?2) Как рассчитат…
21 апр '20 в 15:39
0 ответов

Перехватить исходящий запрос с помощью bytebuddy

Я пробую создать образец агента Java, используя совет bytebuddy для отслеживания входящего запроса. Я могу перехватить сервисный метод с помощью кода, но я не могу перехватить рестлинг, происходящий внутри кода. E.g. RestTemplate rt = new RestTempla…
13 ноя '19 в 19:48
4 ответа

Как украсить существующий метод объекта Java?

РЕДАКТИРОВАТЬ: я описал наше решение на /questions/53768355/kak-ukrasit-suschestvuyuschij-metod-obekta-java/53768372#53768372 У меня есть объект java. Это экземпляр одного из многих подклассов, расширяющих абстрактный класс. Я хотел бы изменить один…
1 ответ

Я добавил предопределенную аннотацию к методу во время выполнения. Я хочу, чтобы изменения были постоянными?

Итак, допустим, у меня есть класс Person, и я хочу добавить аннотацию Myntra к методу getLastName() во время выполнения (что я выполнил с помощью библиотеки Javassist) Но я хочу, чтобы изменения были постоянными, чтобы при следующем запуске аннотаци…
11 фев '20 в 15:21
0 ответов

Использование javaassit для создания инструмента тестирования объектов Spring bean

Я хотел бы создать инструмент тестирования для объекта Spring Bean для разработчиков, разработчиков через интерфейс для передачи, имена классов, имена методов и параметры, вы можете выполнить соответствующие вызовы компонентов bean, есть ли у кого-н…
21 окт '20 в 13:13
0 ответов

Android: вызвано: java.lang.RuntimeException: java.io.IOException: недопустимый тип константы: 19 в 5

Мы интегрируем библиотеку Hotfix Robust в мое приложение. При запуске приложения мы получаем ошибку ниже. Мы установили compileOptions к Java8 версия, а также попробовал, добавив Javaassist версия 3.27.0-GA но не повезло. Execution failed for task '…
0 ответов

Как я могу записать HTTP-запрос и ответ с помощью Java API Instrumentation?

Я пишу -javaagent для захвата HTTP-запроса и ответа с помощью Java Instrumentation API, например javassist/ asm. Я мог бы вставить код вокруг метода, но как я могу зафиксировать, если метод собирается сделать HTTP-вызов и захватить детали HTTP-запро…
0 ответов

Излишнее продвижение объектов Java в старое поколение сразу после незначительного gc, вызывающего проблемы фрагментации памяти

Мы столкнулись со странной проблемой утечки памяти в нашем приложении. Конфигурация ГХ: ParNew + CMS Определенный тип объектов слишком рано переводится в старое поколение и вызывает серьезные проблемы с фрагментацией. У выжившего было достаточно мес…
1 ответ

Powermock 1.6.4 с Javassist 3.24.0-GA создает исключение javassist.CannotCompileException: от javassist.bytecode.BadBytecode

Я использую следующие версии powermock и junit с javaassist. Большинство тестовых случаев работают нормально, за исключением нескольких, написанных для классов, использующих CloseableHttpClient. Я пробовал разные комбинации powermock + javaassist, н…
17 сен '21 в 19:04