pg-yang commented on issue #8133:
URL: https://github.com/apache/skywalking/issues/8133#issuecomment-1188848135
I test jdk-http-scenario , It's right when use jdk8.
And use jdk18 will cause exception like :
```
ERROR 2022-07-19 17:21:34.678 http-nio-8081-exec-2
org.apache.skywalking.apm.plugin.jdk.http.HttpClientWriteRequestInterceptor_internal
: class[class sun.net.www.http.HttpClient] before method[writeRequests]
intercept failure
java.lang.IllegalAccessError: class
org.apache.skywalking.apm.plugin.jdk.http.HttpClientWriteRequestInterceptor (in
unnamed module @0x68149c35) cannot access class sun.net.www.MessageHeader (in
module java.base) because module java.base does not export sun.net.www to
unnamed module @0x68149c35
at
org.apache.skywalking.apm.plugin.jdk.http.HttpClientWriteRequestInterceptor.beforeMethod(HttpClientWriteRequestInterceptor.java:44)
at
org.apache.skywalking.apm.plugin.jdk.http.HttpClientWriteRequestInterceptor_internal.intercept(InstanceMethodInterTemplate.java:74)
at java.base/sun.net.www.http.HttpClient.writeRequests(HttpClient.java)
at
java.base/sun.net.www.http.HttpClient.writeRequests(HttpClient.java:703)
at
java.base/sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:747)
at
java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1686)
at
java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at
java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
at
org.apache.skywalking.apm.testcase.jdkhttp.controller.CaseController.testcase(CaseController.java:46)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
```
I think it's module problem from java 9+ (HttpClientWriteRequestInterceptor
depended on sun.net.www.MessageHeader), And it might resolved by :
1. User can add jvm option: `--add-exports
java.base/sun.net.www=ALL-UNNAMED` , And is there other way to export
java.base/sun.net.www module programmatically(I'm not good at java9 module )
2. not use `sun.net.www.MessageHeader ` in
`HttpClientWriteRequestInterceptor `, We should find other way to implement
`jdk-http-plugin`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]