You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by zh...@apache.org on 2021/09/04 15:58:00 UTC

[dubbo-go-samples] 18/18: fix generic invocation bug (#210)

This is an automated email from the ASF dual-hosted git repository.

zhaoyunxing pushed a commit to branch 1.5
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git

commit b36976b2a4ee65b11d99ea2cc9a4d6ba04bd58e3
Author: alchemy-lee <27...@qq.com>
AuthorDate: Fri Aug 27 09:53:45 2021 +0800

    fix generic invocation bug (#210)
---
 generic/go-client/cmd/client.go | 26 ++++++++++++++++++++++++--
 generic/go-server/pkg/user.go   |  9 +++++++++
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/generic/go-client/cmd/client.go b/generic/go-client/cmd/client.go
index 0d9d4f3..8a8d003 100644
--- a/generic/go-client/cmd/client.go
+++ b/generic/go-client/cmd/client.go
@@ -37,6 +37,7 @@ import (
 	_ "github.com/apache/dubbo-go/registry/protocol"
 	_ "github.com/apache/dubbo-go/registry/zookeeper"
 
+	hessian "github.com/apache/dubbo-go-hessian2"
 	"github.com/dubbogo/gost/log"
 )
 
@@ -66,6 +67,8 @@ func main() {
 	callGetUser()
 	gxlog.CInfo("\n\ncall queryUser")
 	callQueryUser()
+	gxlog.CInfo("\n\ncall getAllUsers")
+	callGetAllUsers()
 	initSignal()
 }
 
@@ -100,7 +103,7 @@ func callGetUser() {
 		[]interface{}{
 			"GetUser",
 			[]string{"java.lang.String"},
-			[]interface{}{"A003"},
+			[]hessian.Object{"A003"},
 		},
 	)
 	if err != nil {
@@ -110,6 +113,7 @@ func callGetUser() {
 	gxlog.CInfo("success!")
 
 }
+
 func callQueryUser() {
 	gxlog.CInfo("\n\n\nstart to generic invoke")
 	user := pkg.User{
@@ -123,7 +127,25 @@ func callQueryUser() {
 		[]interface{}{
 			"queryUser",
 			[]string{"org.apache.dubbo.User"},
-			[]interface{}{user},
+			[]hessian.Object{user},
+		},
+	)
+	if err != nil {
+		panic(err)
+	}
+	gxlog.CInfo("res: %+v\n", resp)
+	gxlog.CInfo("success!")
+
+}
+
+func callGetAllUsers() {
+	gxlog.CInfo("\n\n\nstart to generic invoke")
+	resp, err := referenceConfig.GetRPCService().(*config.GenericService).Invoke(
+		context.TODO(),
+		[]interface{}{
+			"GetAllUsers",
+			[]hessian.Object{},
+			[]hessian.Object{},
 		},
 	)
 	if err != nil {
diff --git a/generic/go-server/pkg/user.go b/generic/go-server/pkg/user.go
index dd62f6d..1fa56d0 100644
--- a/generic/go-server/pkg/user.go
+++ b/generic/go-server/pkg/user.go
@@ -59,6 +59,15 @@ func (u *UserProvider) QueryUser(ctx context.Context, user *User) (*User, error)
 	return &rsp, nil
 }
 
+func (u *UserProvider) GetAllUsers(ctx context.Context) ([]*User, error) {
+	rsp := []*User{
+		{"A001", "Alex Stocks", 18, time.Now()},
+		{"A002", "Alchemy Lee", 12, time.Now()},
+	}
+	gxlog.CInfo("rsp:%#v", rsp)
+	return rsp, nil
+}
+
 func (u *UserProvider) MethodMapper() map[string]string {
 	return map[string]string{
 		"QueryUser": "queryUser",