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",