Skip to content
Snippets Groups Projects
Commit 3977817d authored by fangyincheng's avatar fangyincheng
Browse files

Fix:invoker bug

parent 4769e666
No related branches found
No related tags found
No related merge requests found
...@@ -70,9 +70,11 @@ type ProxyInvoker struct { ...@@ -70,9 +70,11 @@ type ProxyInvoker struct {
func (pi *ProxyInvoker) Invoke(invocation protocol.Invocation) protocol.Result { func (pi *ProxyInvoker) Invoke(invocation protocol.Invocation) protocol.Result {
result := &protocol.RPCResult{} result := &protocol.RPCResult{}
url := pi.GetUrl().SubURL
methodName := invocation.MethodName() methodName := invocation.MethodName()
proto := pi.GetUrl().Protocol proto := url.Protocol
path := strings.TrimPrefix(pi.GetUrl().Path, "/") path := strings.TrimPrefix(url.Path, "/")
args := invocation.Arguments() args := invocation.Arguments()
// get service // get service
......
...@@ -33,9 +33,9 @@ import ( ...@@ -33,9 +33,9 @@ import (
"github.com/apache/dubbo-go/common/logger" "github.com/apache/dubbo-go/common/logger"
_ "github.com/apache/dubbo-go/common/proxy/proxy_factory" _ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
"github.com/apache/dubbo-go/config" "github.com/apache/dubbo-go/config"
_ "github.com/apache/dubbo-go/registry/protocol"
_ "github.com/apache/dubbo-go/filter/impl" _ "github.com/apache/dubbo-go/filter/impl"
_ "github.com/apache/dubbo-go/protocol/dubbo"
_ "github.com/apache/dubbo-go/registry/protocol"
_ "github.com/apache/dubbo-go/cluster/cluster_impl" _ "github.com/apache/dubbo-go/cluster/cluster_impl"
_ "github.com/apache/dubbo-go/cluster/loadbalance" _ "github.com/apache/dubbo-go/cluster/loadbalance"
...@@ -95,18 +95,18 @@ func println(format string, args ...interface{}) { ...@@ -95,18 +95,18 @@ func println(format string, args ...interface{}) {
} }
func test() { func test() {
println("\n\n\necho") //println("\n\n\necho")
res, err := userProvider.Echo(context.TODO(), "OK") //res, err := userProvider.Echo(context.TODO(), "OK")
if err != nil { //if err != nil {
panic(err) // panic(err)
} //}
println("res: %v\n", res) //println("res: %v\n", res)
time.Sleep(3e9) time.Sleep(3e9)
println("\n\n\nstart to test dubbo") println("\n\n\nstart to test dubbo")
user := &User{} user := &User{}
err = userProvider.GetUser(context.TODO(), []interface{}{"A003"}, user) err := userProvider.GetUser(context.TODO(), []interface{}{"A003"}, user)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -168,7 +168,7 @@ func test1() { ...@@ -168,7 +168,7 @@ func test1() {
time.Sleep(3e9) time.Sleep(3e9)
println("\n\n\nstart to test dubbo") println("\n\n\nstart to test1 dubbo")
user := &User{} user := &User{}
err = userProvider1.GetUser(context.TODO(), []interface{}{"A003"}, user) err = userProvider1.GetUser(context.TODO(), []interface{}{"A003"}, user)
if err != nil { if err != nil {
...@@ -176,7 +176,7 @@ func test1() { ...@@ -176,7 +176,7 @@ func test1() {
} }
println("response result: %v", user) println("response result: %v", user)
println("\n\n\nstart to test dubbo - GetUser0") println("\n\n\nstart to test1 dubbo - GetUser0")
ret, err := userProvider1.GetUser0("A003", "Moorse") ret, err := userProvider1.GetUser0("A003", "Moorse")
if err != nil { if err != nil {
panic(err) panic(err)
...@@ -190,7 +190,7 @@ func test1() { ...@@ -190,7 +190,7 @@ func test1() {
} }
println("response result: %v", ret1) println("response result: %v", ret1)
println("\n\n\nstart to test dubbo - getUser") println("\n\n\nstart to test1 dubbo - getUser")
user = &User{} user = &User{}
var i int32 = 1 var i int32 = 1
err = userProvider1.GetUser2(context.TODO(), []interface{}{i}, user) err = userProvider1.GetUser2(context.TODO(), []interface{}{i}, user)
...@@ -206,7 +206,7 @@ func test1() { ...@@ -206,7 +206,7 @@ func test1() {
} }
println("succ!") println("succ!")
println("\n\n\nstart to test dubbo - getErr") println("\n\n\nstart to test1 dubbo - getErr")
user = &User{} user = &User{}
err = userProvider1.GetErr(context.TODO(), []interface{}{"A003"}, user) err = userProvider1.GetErr(context.TODO(), []interface{}{"A003"}, user)
if err == nil { if err == nil {
...@@ -214,7 +214,7 @@ func test1() { ...@@ -214,7 +214,7 @@ func test1() {
} }
println("getErr - error: %v", err) println("getErr - error: %v", err)
println("\n\n\nstart to test dubbo illegal method") println("\n\n\nstart to test1 dubbo illegal method")
err = userProvider1.GetUser1(context.TODO(), []interface{}{"A003"}, user) err = userProvider1.GetUser1(context.TODO(), []interface{}{"A003"}, user)
if err == nil { if err == nil {
panic("err is nil") panic("err is nil")
...@@ -232,7 +232,7 @@ func test2() { ...@@ -232,7 +232,7 @@ func test2() {
time.Sleep(3e9) time.Sleep(3e9)
println("\n\n\nstart to test dubbo") println("\n\n\nstart to test2 dubbo")
user := &User{} user := &User{}
err = userProvider2.GetUser(context.TODO(), []interface{}{"A003"}, user) err = userProvider2.GetUser(context.TODO(), []interface{}{"A003"}, user)
if err != nil { if err != nil {
...@@ -240,21 +240,21 @@ func test2() { ...@@ -240,21 +240,21 @@ func test2() {
} }
println("response result: %v", user) println("response result: %v", user)
println("\n\n\nstart to test dubbo - GetUser0") println("\n\n\nstart to test2 dubbo - GetUser0")
ret, err := userProvider2.GetUser0("A003", "Moorse") ret, err := userProvider2.GetUser0("A003", "Moorse")
if err != nil { if err != nil {
panic(err) panic(err)
} }
println("response result: %v", ret) println("response result: %v", ret)
println("\n\n\nstart to test dubbo - GetUsers") println("\n\n\nstart to test2 dubbo - GetUsers")
ret1, err := userProvider2.GetUsers([]interface{}{[]interface{}{"A002", "A003"}}) ret1, err := userProvider2.GetUsers([]interface{}{[]interface{}{"A002", "A003"}})
if err != nil { if err != nil {
panic(err) panic(err)
} }
println("response result: %v", ret1) println("response result: %v", ret1)
println("\n\n\nstart to test dubbo - getUser") println("\n\n\nstart to test2 dubbo - getUser")
user = &User{} user = &User{}
var i int32 = 1 var i int32 = 1
err = userProvider2.GetUser2(context.TODO(), []interface{}{i}, user) err = userProvider2.GetUser2(context.TODO(), []interface{}{i}, user)
...@@ -263,14 +263,14 @@ func test2() { ...@@ -263,14 +263,14 @@ func test2() {
} }
println("response result: %v", user) println("response result: %v", user)
println("\n\n\nstart to test dubbo - GetUser3") println("\n\n\nstart to test2 dubbo - GetUser3")
err = userProvider2.GetUser3() err = userProvider2.GetUser3()
if err != nil { if err != nil {
panic(err) panic(err)
} }
println("succ!") println("succ!")
println("\n\n\nstart to test dubbo - getErr") println("\n\n\nstart to test2 dubbo - getErr")
user = &User{} user = &User{}
err = userProvider2.GetErr(context.TODO(), []interface{}{"A003"}, user) err = userProvider2.GetErr(context.TODO(), []interface{}{"A003"}, user)
if err == nil { if err == nil {
...@@ -278,7 +278,7 @@ func test2() { ...@@ -278,7 +278,7 @@ func test2() {
} }
println("getErr - error: %v", err) println("getErr - error: %v", err)
println("\n\n\nstart to test dubbo illegal method") println("\n\n\nstart to test2 dubbo illegal method")
err = userProvider2.GetUser1(context.TODO(), []interface{}{"A003"}, user) err = userProvider2.GetUser1(context.TODO(), []interface{}{"A003"}, user)
if err == nil { if err == nil {
panic("err is nil") panic("err is nil")
......
...@@ -220,12 +220,13 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) { ...@@ -220,12 +220,13 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
logger.Errorf("OnMessage panic: %+v, this is impossible.", e) logger.Errorf("OnMessage panic: %+v, this is impossible.", e)
p.Body = e p.Body = e
} }
}
if !twoway { if !twoway {
return return
}
h.reply(session, p, hessian.PackageResponse)
} }
h.reply(session, p, hessian.PackageResponse)
}() }()
u := common.NewURLWithOptions(common.WithPath(p.Service.Path), common.WithParams(url.Values{}), u := common.NewURLWithOptions(common.WithPath(p.Service.Path), common.WithParams(url.Values{}),
......
...@@ -200,3 +200,6 @@ func (ivk *wrappedInvoker) GetUrl() common.URL { ...@@ -200,3 +200,6 @@ func (ivk *wrappedInvoker) GetUrl() common.URL {
func (ivk *wrappedInvoker) getInvoker() protocol.Invoker { func (ivk *wrappedInvoker) getInvoker() protocol.Invoker {
return ivk.invoker return ivk.invoker
} }
func (ivk *wrappedInvoker) Invoke(invocation protocol.Invocation) protocol.Result {
return ivk.invoker.Invoke(invocation)
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment