jockercheng91 opened a new issue, #15968:
URL: https://github.com/apache/dubbo/issues/15968

   ### Pre-check
   
   - [x] I am sure that all the content I provide is in English.
   
   
   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Apache Dubbo Component
   
   Java SDK (apache/dubbo)
   
   ### Dubbo Version
   
   - Dubbo Version: 3.3.0
   - APISIX Version: Unknown (tested with HTTP/1.1 enabled)
   
   - JDK Version: 1.8.0_452
   
   - Framework: Spring Boot 2.7.18
   
   - Protocol: Triple (tri)
   
   ### Steps to reproduce this issue
   
   step1: Deploy APISIX Gateway and configure service discovery via Nacos
   Follow the official documentation to deploy APISIX and complete service 
discovery with Nacos: 
https://cn.dubbo.apache.org/zh-cn/blog/2024/04/22/%E4%BD%BF%E7%94%A8-apache-apisix-%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1triple%E5%8D%8F%E8%AE%AE/
   Key configurations:
   - APISIX listens on 10.216.23.40:8090.
   - Route rule: Proxy requests to 
/com.example.edu.initializer.samples.dubbo3.DemoService/* to the backend Dubbo 
Triple service (discovered via Nacos).
   
   step2:
   Verify APISIX proxy works via curl
   Execute the following curl command and get a successful response:
   ```
   curl 
http://10.216.23.40:8090/com.example.edu.initializer.samples.dubbo3.DemoService/sayHello
 -i
   ```
   Curl response (successful):
   ```
   HTTP/1.1 200 OK
   Content-Type: application/json
   Content-Length: 12
   Connection: keep-alive
   alt-svc: h2=":24395"
   Server: APISIX/3.2.2
   
   "Hello null"
   ```
   
   step3:Call via @DubboReference annotation and trigger exception
   Consumer code with @DubboReference:
   ```
   @DubboReference(
           interfaceClass = DemoService.class,
           protocol = "tri",
           url = 
"tri://10.216.23.40:8090/com.example.edu.initializer.samples.dubbo3.DemoService/sayHello"
   )
   private DemoService demoService;
   ```
   Trigger the call in consumer application:
   ```
   String result = demoService.sayHello("test");
   ```
   exception happened:
   ```
   Caused by: org.apache.dubbo.rpc.RpcException: 
java.util.concurrent.ExecutionException: 
org.apache.dubbo.rpc.StatusRpcException: CANCELLED
        at 
org.apache.dubbo.rpc.AsyncRpcResult.getAppResponse(AsyncRpcResult.java:181) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.AsyncRpcResult.recreate(AsyncRpcResult.java:246) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:64) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:81)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
com.iflytek.edu.initializer.samples.dubbo3.DemoServiceDubboProxy0.sayHello(DemoServiceDubboProxy0.java)
 ~[classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_452]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_452]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_452]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_452]
        at 
org.apache.dubbo.config.spring.util.LazyTargetInvocationHandler.invoke(LazyTargetInvocationHandler.java:54)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
com.iflytek.edu.initializer.samples.dubbo3.DemoServiceDubboProxy0.sayHello(DemoServiceDubboProxy0.java)
 ~[classes/:na]
        at 
com.iflytek.edu.initializer.samples.dubbo3.consumer.base.ConsumerApplication.lambda$commandLineRunner$0(ConsumerApplication.java:34)
 [classes/:na]
        at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765)
 [spring-boot-2.7.18.jar:2.7.18]
        ... 14 common frames omitted
   Caused by: java.util.concurrent.ExecutionException: 
org.apache.dubbo.rpc.StatusRpcException: CANCELLED
        at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) 
~[na:1.8.0_452]
        at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) 
~[na:1.8.0_452]
        at 
org.apache.dubbo.rpc.AsyncRpcResult.getAppResponse(AsyncRpcResult.java:172) 
~[dubbo-3.3.0.jar:3.3.0]
        ... 26 common frames omitted
   Caused by: org.apache.dubbo.rpc.StatusRpcException: CANCELLED
        at org.apache.dubbo.rpc.TriRpcStatus.asException(TriRpcStatus.java:260) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.tri.call.UnaryClientCallListener.onClose(UnaryClientCallListener.java:53)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.onComplete(TripleClientCall.java:126)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.onCancelByRemote(TripleClientCall.java:112)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.onClose(TripleClientCall.java:143)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.common.threadpool.serial.SerializingExecutor.run(SerializingExecutor.java:105)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:151)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77)
 ~[dubbo-3.3.0.jar:3.3.0]
        at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:220) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:293)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:195) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:40)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:106)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:412)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:366)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:109) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:57)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:40)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:86) 
~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:38)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:119)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:349)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:197)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:101)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:107)
 ~[dubbo-3.3.0.jar:3.3.0]
        at 
org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:156)
 ~[dubbo-3.3.0.jar:3.3.0]
        ... 25 common frames omitted
   ```
   apisix acesslog:
   ```
   172.16.12.131 - - [05/Jan/2026:23:18:37 +0800] - "PRI * HTTP/2.0" 400 229 
0.270 "-" "-" - - - "://"
   ```
   
   ### What you expected to happen
   
   The @DubboReference annotation should correctly send Triple protocol 
requests (adapted to HTTP/1.1 via configuration) to the APISIX gateway, and 
successfully receive the response from the backend service.
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit a pull request to fix on your own?
   
   - [ ] Yes I am willing to submit a pull request on my own!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to