alibaba / alibaba/one-java-agent

解决agent的API类在自定义的ClassLoader里加载的问题

Aperta
#1 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
579
Fork
128
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

* 默认情况下,加载java agent的是SystemClassLoader,那么应用自己定义的ClassLoader,如果parent不是 SystemClassLoader,就加载不到java agent里的类。

比如,有一个类Foo,它有一个函数bar:

```java
public class Foo {
public void bar() {

}
}
```

有一个Java Agent想做一些类增强,会插入一些代码:

```java
public class Foo {
public void bar() {
SampleAgent.log("here");
}
}
```

* 这就要求加载Foo的ClassLoader必须要能加载到SystemClassLoader里的`SampleAgent`类。

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Non sono indicati file o test. Inizia tracciando come l’agente Java espone SampleAgent alle classi caricate da un ClassLoader definito dall’applicazione il cui parent non è il SystemClassLoader, quindi riproduci l’esempio Foo/bar. Il lavoro è completato quando la chiamata iniettata SampleAgent.log(\"here\") può essere risolta ed eseguita in questa configurazione del loader.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.