<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.1.x
* Operating System version: mac os\Linux
* Java version: 1.8

### Steps to reproduce this issue

1. Server
```java
public interface DemoApi {

    String methodA();

    String testCallbackMethod(String name,  ApiCallback callback);
    
    interface ApiCallback {
        String callbackMethod();
    }
}

@DubboService(methods = @Method(name="testCallbackMethod", 
                arguments = {@Argument(index = 1, type = "DemoApi$ApiCallback", callback = true)}))
public class DemoProvider implements DemoApi {
   
    @Override
    public String methodA() {
        return "ok";
    }
  
  @Override
    public String testCallbackMethod(String name, ApiCallback callback) {
        String s = callback.callbackMethod();
        return "ok";
    }
}
```

2. Consumer
```java
@RestController
public class TestController{

    @DubboReference
    DemoApi demo;

    private DemoApi.ApiCallback callback = new DemoApi.ApiCallback() {
        @Override
        public String callbackMethod() {
            //rpc context has been lost
            System.out.println("callback:" + RpcContext.getContext().getAttachment("test"));
            //This is just a simple simulation problem, in fact, it may call other services
            return demo.methodA();
        }
    };

    @GetMapping("/testDubboCallback")
    public ResponseEntity<String> testDubboCallback() {
        RpcContext.getContext().setAttachment("test", "abc");
        return ResponseEntity.ok(demo.testCallbackMethod("param" ,callback));
    }

}
```

Pls. provide [GitHub address] to reproduce this issue.

### Expected Behavior

<!-- What do you expect from the above steps？-->
RpcContext passed normally， sky tracking is normal.

### Actual Behavior

<!-- What actually happens? -->
rpc context loss, the tracking has been broken.

If there is an exception, please attach the exception trace:

```
Just put your stack trace here!
```

String INTERFACES = "interfaces";
    String SSL_ENABLED_KEY = "ssl-enabled";
    String SERVICE_PATH_PREFIX = "service.path.prefix";
    String PROTOCOL_SERVER_SERVLET = "servlet";
    String PROTOCOL_SERVER = "server";
    String IPV6_KEY = "ipv6";
    /**
     * The parameter key for the class path of the ServiceNameMapping {@link Properties} file
     *
     * @since 2.7.8
     */
    String SERVICE_NAME_MAPPING_PROPERTIES_FILE_KEY = "service-name-mapping.properties-path";
    /**
     * The default class path of the ServiceNameMapping {@link Properties} file
     *
     * @since 2.7.8
     */
    String DEFAULT_SERVICE_NAME_MAPPING_PROPERTIES_PATH = "META-INF/dubbo/service-name-mapping.properties";
    String CLASS_DESERIALIZE_BLOCK_ALL = "dubbo.security.serialize.blockAllClassExceptAllow";
    String CLASS_DESERIALIZE_ALLOWED_LIST = "dubbo.security.serialize.allowedClassList";
    String CLASS_DESERIALIZE_BLOCKED_LIST = "dubbo.security.serialize.blockedClassList";
    String ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE = "dubbo.security.serialize.generic.native-java-enable";
    String SERIALIZE_BLOCKED_LIST_FILE_PATH = "security/serialize.blockedlist";
    String SERIALIZE_ALLOW_LIST_FILE_PATH = "security/serialize.allowlist";
    String SERIALIZE_CHECK_STATUS_KEY = "dubbo.application.serialize-check-status";
    String QOS_LIVE_PROBE_EXTENSION = "dubbo.application.liveness-probe";
    String QOS_READY_PROBE_EXTENSION = "dubbo.application.readiness-probe";
    String QOS_STARTUP_PROBE_EXTENSION = "dubbo.application.startup-probe";
    String REGISTRY_DELAY_NOTIFICATION_KEY = "delay-notification";
    String CACHE_CLEAR_TASK_INTERVAL = "dubbo.application.url.cache.task.interval";