diff --git a/examples/dubbo/go-client/app/user.go b/examples/dubbo/go-client/app/user.go index ee56e23ba33e3875f58d17024747fb212cd5e1ad..59e105109ecb7213a071ca9071737e14fff0869e 100644 --- a/examples/dubbo/go-client/app/user.go +++ b/examples/dubbo/go-client/app/user.go @@ -25,10 +25,13 @@ import ( ) import ( - "github.com/apache/dubbo-go/config" hessian "github.com/dubbogo/hessian2" ) +import ( + "github.com/apache/dubbo-go/config" +) + type Gender hessian.JavaEnum func init() { diff --git a/examples/dubbo/go-server/app/server.go b/examples/dubbo/go-server/app/server.go index db0196f63e2a43fcf06d73f15d925cf8af6f1867..a5c89be7a6b36ddaaae8b515729aaccd203c19f1 100644 --- a/examples/dubbo/go-server/app/server.go +++ b/examples/dubbo/go-server/app/server.go @@ -26,11 +26,11 @@ import ( ) import ( - "github.com/apache/dubbo-go/common/logger" hessian "github.com/dubbogo/hessian2" ) import ( + "github.com/apache/dubbo-go/common/logger" "github.com/apache/dubbo-go/config" _ "github.com/apache/dubbo-go/protocol/dubbo" _ "github.com/apache/dubbo-go/registry/protocol" diff --git a/examples/dubbo/go-server/app/user.go b/examples/dubbo/go-server/app/user.go index c55b040eed5580ee842c20fb7ef5186b940aab82..e4400cc270ad46c84085b52e8879bbd49969bcb0 100644 --- a/examples/dubbo/go-server/app/user.go +++ b/examples/dubbo/go-server/app/user.go @@ -146,7 +146,7 @@ func (u *UserProvider) GetUser(ctx context.Context, req []interface{}, rsp *User } func (u *UserProvider) GetErr(ctx context.Context, req []interface{}, rsp *User) error { - return perrors.New("exception") + return hessian.NewThrowable("exception") } func (u *UserProvider) GetUser0(id string, name string) (User, error) { diff --git a/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java index 0e4a9267715b27ebc6f1bd5174d579461072f276..f1100e79ac2ee31ea13b98af345d5472eb08488e 100644 --- a/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java +++ b/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java @@ -59,9 +59,9 @@ public class Consumer { } try { userProvider.GetErr("A003"); - } catch (Exception e) { + } catch (Throwable t) { System.out.println("*************exception***********"); - e.printStackTrace(); + t.printStackTrace(); } } diff --git a/go.mod b/go.mod index 66757f22f3d92c7c6c4ef8287756f7a1cd959ed0..df9ce48d1853a9cd51b1553f902010ea40a150a4 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/apache/dubbo-go require ( github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53 - github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56 + github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f github.com/pkg/errors v0.8.1 github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec github.com/stretchr/testify v1.3.0 diff --git a/go.sum b/go.sum index db094a9133b7aa65f0eaeb9274499fbc3141b081..f3cd528352fccaee17853d91dabfa00e7f5c0289 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53 h1:bniSNoC4xnAbrx4estwc9F0qkWnh6ZDsAS0y9d7mPos= github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53/go.mod h1:cRMSuoCmwc5lULFFnYZTxyCfZhObmRTNbS7XRnPNHSo= -github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56 h1:5ZhIvx1pqtpRSfUzcc6jkF9pFsx/DcwymDuuaM3jFuw= -github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56/go.mod h1:XFGDn4oSZX26zkcfhkM/fCJrOqwQJxk/xgWW1KMJBKM= +github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f h1:oN6hLbasIJuqlT+/R0F1dVIDaXG+Sun9PE6yFogTtSs= +github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f/go.mod h1:XFGDn4oSZX26zkcfhkM/fCJrOqwQJxk/xgWW1KMJBKM= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= diff --git a/protocol/dubbo/codec.go b/protocol/dubbo/codec.go index a20fcfabd1ca93b6ad5073d3ff56a51a3a16bbe7..e26db06a751982850864fbd45268d4392b022bb9 100644 --- a/protocol/dubbo/codec.go +++ b/protocol/dubbo/codec.go @@ -74,7 +74,7 @@ func (p *DubboPackage) Marshal() (*bytes.Buffer, error) { } func (p *DubboPackage) Unmarshal(buf *bytes.Buffer, opts ...interface{}) error { - codec := hessian.NewHessianCodec(bufio.NewReader(buf)) + codec := hessian.NewHessianCodec(bufio.NewReaderSize(buf, buf.Len())) // read header err := codec.ReadHeader(&p.Header) diff --git a/protocol/dubbo/listener.go b/protocol/dubbo/listener.go index 84be5818825f1abf1d92c21473733a5e4d6137fb..9e99bcb628ea1c3075d5768bfd79bb2083f434f9 100644 --- a/protocol/dubbo/listener.go +++ b/protocol/dubbo/listener.go @@ -22,16 +22,20 @@ import ( "reflect" "sync" "time" +) +import ( "github.com/dubbogo/getty" + "github.com/dubbogo/hessian2" + perrors "github.com/pkg/errors" +) +import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/logger" "github.com/apache/dubbo-go/protocol" "github.com/apache/dubbo-go/protocol/invocation" - hessian "github.com/dubbogo/hessian2" - perrors "github.com/pkg/errors" ) // todo: WritePkg_Timeout will entry *.yml @@ -323,7 +327,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) { } if retErr != nil { req.Header.ResponseStatus = hessian.Response_OK - req.Body = perrors.WithStack(retErr.(error)) + req.Body = retErr } else { req.Body = replyv.Interface() } diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go index fbcc9e4546b908f5d11d3b2f8915003fa9512be2..5302c84c8e445026d6d9c68221249a46d263e09c 100644 --- a/registry/zookeeper/registry.go +++ b/registry/zookeeper/registry.go @@ -29,7 +29,6 @@ import ( ) import ( - "github.com/apache/dubbo-go/common/logger" perrors "github.com/pkg/errors" "github.com/samuel/go-zookeeper/zk" ) @@ -38,6 +37,7 @@ import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" + "github.com/apache/dubbo-go/common/logger" "github.com/apache/dubbo-go/common/utils" "github.com/apache/dubbo-go/registry" "github.com/apache/dubbo-go/version" diff --git a/registry/zookeeper/zk_client.go b/registry/zookeeper/zk_client.go index a8b14bb2bd04938e84cf3c7f482f6ae650c3c98b..bd273ff409f0bda2f0bf7e5f5cbdeaaad83fcce3 100644 --- a/registry/zookeeper/zk_client.go +++ b/registry/zookeeper/zk_client.go @@ -25,11 +25,14 @@ import ( ) import ( - "github.com/apache/dubbo-go/common/logger" perrors "github.com/pkg/errors" "github.com/samuel/go-zookeeper/zk" ) +import ( + "github.com/apache/dubbo-go/common/logger" +) + var ( errNilZkClientConn = perrors.New("zookeeperclient{conn} is nil") )