Как мне подключить HttpURLConnection с помощью Bytebuddy? - PullRequest
0 голосов
/ 05 июля 2019

Я использую Bytebuddy для перехвата какого-либо метода HttpURLConnection и добавления трассировки.Я написал следующий код:

File temp = Files.createTempDirectory("tmp").toFile();
            new AgentBuilder.Default().ignore(none())
                    .enableBootstrapInjection(inst, temp)
                    .type(hasSuperType(is(HttpURLConnection.class)))
                    .transform(new AgentBuilder.Transformer.ForAdvice()
                            .include(HttpURLConnection.class.getClassLoader())
                            .advice(named("setRequestMethod"), HttpURLIntercept.class.getName()))
                    .installOn(inst);

Но метод никогда не инструментируется.

Я знаю, что HttpURLConnection загружается при начальной загрузке.Как я могу все еще инструмент это?

1 Ответ

0 голосов
/ 06 июля 2019

По умолчанию Byte Buddy игнорирует загрузчик классов начальной загрузки.Определите другой механизм игнорирования, который не включает HttpUrlConnection, чтобы избежать этого исключения.Обратите внимание, что JVM сама определяет тысячи классов, которые все загружаются в загрузчик начальной загрузки, где Stsrtup JVM становится очень медленным, если вы не исключите большинство классов начальной загрузки эффективно.

...