You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2020/07/01 05:46:44 UTC
[dubbo] branch master updated: Service callback throws "Not found
exported service" when 'bind.port' is set (#6223)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new ba89f44 Service callback throws "Not found exported service" when 'bind.port' is set (#6223)
ba89f44 is described below
commit ba89f44f5aeddd2d06024232a15e355c2e8dc5cd
Author: 李黄河 <ja...@gmail.com>
AuthorDate: Wed Jul 1 13:46:26 2020 +0800
Service callback throws "Not found exported service" when 'bind.port' is set (#6223)
---
.../rpc/protocol/dubbo/CallbackServiceCodec.java | 3 ++
.../rpc/protocol/dubbo/ArgumentCallbackTest.java | 39 +++++++++++++++++-----
2 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java
index 7a60e0e..eead37c 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java
@@ -24,6 +24,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.utils.ConcurrentHashSet;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.remoting.Channel;
+import org.apache.dubbo.remoting.Constants;
import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.rpc.Exporter;
import org.apache.dubbo.rpc.Invocation;
@@ -113,7 +114,9 @@ class CallbackServiceCodec {
}
}
tmpMap.putAll(params);
+
tmpMap.remove(VERSION_KEY);// doesn't need to distinguish version for callback
+ tmpMap.remove(Constants.BIND_PORT_KEY); //callback doesn't needs bind.port
tmpMap.put(INTERFACE_KEY, clazz.getName());
URL exportUrl = new URL(DubboProtocol.NAME, channel.getLocalAddress().getAddress().getHostAddress(), channel.getLocalAddress().getPort(), clazz.getName() + "." + instid, tmpMap);
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/ArgumentCallbackTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/ArgumentCallbackTest.java
index a51244a..c3ccb33 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/ArgumentCallbackTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/ArgumentCallbackTest.java
@@ -16,6 +16,14 @@
*/
package org.apache.dubbo.rpc.protocol.dubbo;
+import static org.apache.dubbo.common.constants.CommonConstants.CALLBACK_INSTANCES_LIMIT_KEY;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.rpc.Exporter;
@@ -23,20 +31,12 @@ import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.model.ApplicationModel;
import org.apache.dubbo.rpc.protocol.dubbo.support.ProtocolUtils;
-
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-import static org.apache.dubbo.common.constants.CommonConstants.CALLBACK_INSTANCES_LIMIT_KEY;
+import org.apache.dubbo.remoting.Constants;
public class ArgumentCallbackTest {
@@ -104,6 +104,27 @@ public class ArgumentCallbackTest {
} catch (Exception e) {
}
}
+
+ @Test
+ public void TestCallbackNormalWithBindPort() throws Exception {
+ initOrResetUrl(1, 10000000);
+ consumerUrl = serviceURL.addParameter(Constants.BIND_PORT_KEY,"7653");
+ initOrResetService();
+
+ final AtomicInteger count = new AtomicInteger(0);
+
+ demoProxy.xxx(new IDemoCallback() {
+ public String yyy(String msg) {
+ System.out.println("Recived callback: " + msg);
+ count.incrementAndGet();
+ return "ok";
+ }
+ }, "other custom args", 10, 100);
+ System.out.println("Async...");
+ assertCallbackCount(10, 100, count);
+ destroyService();
+
+ }
@Test
public void TestCallbackNormal() throws Exception {