arextest / arextest/arex-agent-java

springboot application start with java -jar after attach arex-agent not work

Open
#204 0 comments 0 reactions 1 assignee Claimed by @lucas-myx View on GitHub
question :question:
Dominant language
Java
Stars
564
Forks
140
Avg merge
36m
Merged PRs (30d)
2

Description

`java -jar springboot-test.jar` after successful startup,
then use attach to start the arex-agent, some class not transform by agent.
because this way use SpringBoot `LaunchedURLClassLoader` load classes,
such as `org.springframework.web.servlet.DispatcherServlet`,
and SpringBoot `LaunchedURLClassLoader` **not delegate to parent class loader**,
so AppClassLoader or arex-agent classloader unable to find `org.springframework.web.servlet.DispatcherServlet`,
and not transform this class, or similar errors may occur as follows :
```
java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
at io.arex.inst.httpclient.apache.common.ApacheHttpClientHelper.ignoreRequest(ApacheHttpClientHelper.java:44)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:157)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:779)
```

In this case you can add to the start parameter `-javaagent`
like this: `java -javaagent:arex-agent.jar -jar springboot-test.jar`

If you must use this attach method, you can pay attention to this issue and we will optimize it in the future.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.