diff --git a/README.md b/README.md
index e52bb6333dcf0c0e531cbb2c10ff8a2747599550..9af43d8d7e1cdddee1c241e148e0cf3038f2484a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Apache Dubbo-go [涓枃](./README_CN.md) #
 
-[![Build Status](https://travis-ci.com/apache/dubbo-go.svg?branch=master)](https://travis-ci.com/apache/dubbo-go)
+[![Build Status](https://travis-ci.org/apache/dubbo-go.svg?branch=master)](https://travis-ci.org/apache/dubbo-go)
 [![codecov](https://codecov.io/gh/apache/dubbo-go/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-go)
 
 ---
diff --git a/README_CN.md b/README_CN.md
index c05bbb4020c5e536f33252c8a6e37253079ae23c..0993828a71e39b49edbccb40a8a9ec68d725889e 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -1,6 +1,6 @@
 # Apache Dubbo-go [English](./README.md) #
 
-[![Build Status](https://travis-ci.com/apache/dubbo-go.svg?branch=master)](https://travis-ci.com/apache/dubbo-go)
+[![Build Status](https://travis-ci.org/apache/dubbo-go.svg?branch=master)](https://travis-ci.org/apache/dubbo-go)
 [![codecov](https://codecov.io/gh/apache/dubbo-go/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-go)
 
 ---
diff --git a/config/reference_config.go b/config/reference_config.go
index 229954563cb916ffec004e87e80090d728185a9b..e0c93b3e54248e886982dbf49e13a42a063eee77 100644
--- a/config/reference_config.go
+++ b/config/reference_config.go
@@ -92,7 +92,7 @@ func (refconfig *ReferenceConfig) Refer() {
 				refconfig.urls = append(refconfig.urls, &serviceUrl)
 			} else {
 				if serviceUrl.Path == "" {
-					serviceUrl.Path = refconfig.InterfaceName + "/"
+					serviceUrl.Path = "/" + refconfig.InterfaceName
 				}
 				// merge url need to do
 				newUrl := common.MergeUrl(serviceUrl, url)
diff --git a/examples/dubbo/go-client/app/client.go b/examples/dubbo/go-client/app/client.go
index e65d93c59754975854f3e456e12c38562b4ab3bb..6167fbc8e7b0743f807775d1c414110159d01449 100644
--- a/examples/dubbo/go-client/app/client.go
+++ b/examples/dubbo/go-client/app/client.go
@@ -27,11 +27,11 @@ import (
 )
 
 import (
-	"github.com/apache/dubbo-go/common/logger"
-	hessian "github.com/dubbogo/hessian2"
+	"github.com/dubbogo/hessian2"
 )
 
 import (
+	"github.com/apache/dubbo-go/common/logger"
 	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
 	"github.com/apache/dubbo-go/config"
 	_ "github.com/apache/dubbo-go/protocol/dubbo"
@@ -102,6 +102,13 @@ func main() {
 		println("response result: %v", user)
 	}
 
+	println("\n\n\nstart to test dubbo - getErr")
+	user = &User{}
+	err = conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetErr(context.TODO(), []interface{}{"A003"}, user)
+	if err != nil {
+		println("getErr - error: %v", err)
+	}
+
 	println("\n\n\nstart to test dubbo illegal method")
 	err = conMap["com.ikurento.user.UserProvider"].GetRPCService().(*UserProvider).GetUser1(context.TODO(), []interface{}{"A003"}, user)
 	if err != nil {
diff --git a/examples/dubbo/go-client/app/user.go b/examples/dubbo/go-client/app/user.go
index 81a7adb2af0a8afac4aec8c164db35f0b4d77b82..ee56e23ba33e3875f58d17024747fb212cd5e1ad 100644
--- a/examples/dubbo/go-client/app/user.go
+++ b/examples/dubbo/go-client/app/user.go
@@ -94,6 +94,7 @@ func (User) JavaClassName() string {
 
 type UserProvider struct {
 	GetUsers func(req []interface{}) ([]interface{}, error)
+	GetErr   func(ctx context.Context, req []interface{}, rsp *User) error
 	GetUser  func(ctx context.Context, req []interface{}, rsp *User) error
 	GetUser0 func(id string, name string) (User, error)
 	GetUser1 func(ctx context.Context, req []interface{}, rsp *User) error
diff --git a/examples/dubbo/go-server/app/user.go b/examples/dubbo/go-server/app/user.go
index 9ba663104240d5ee5ead9fcda841b9beab335a49..c55b040eed5580ee842c20fb7ef5186b940aab82 100644
--- a/examples/dubbo/go-server/app/user.go
+++ b/examples/dubbo/go-server/app/user.go
@@ -145,6 +145,10 @@ func (u *UserProvider) GetUser(ctx context.Context, req []interface{}, rsp *User
 	return err
 }
 
+func (u *UserProvider) GetErr(ctx context.Context, req []interface{}, rsp *User) error {
+	return perrors.New("exception")
+}
+
 func (u *UserProvider) GetUser0(id string, name string) (User, error) {
 	var err error
 
diff --git a/examples/dubbo/go-server/profiles/dev/server.yml b/examples/dubbo/go-server/profiles/dev/server.yml
index 06f3c9f885a917b71baea178d172f8782e174218..619f2ddca6a0164e222f4a08669beb79dc077914 100644
--- a/examples/dubbo/go-server/profiles/dev/server.yml
+++ b/examples/dubbo/go-server/profiles/dev/server.yml
@@ -42,7 +42,7 @@ services:
 
 protocols:
   -   name: "dubbo"
-      ip : "127.0.0.1"
+  #    ip : "127.0.0.1"
       port : 20000
   #-   name: "jsonrpc"
   #    ip: "127.0.0.1"
diff --git a/examples/dubbo/go-server/profiles/release/server.yml b/examples/dubbo/go-server/profiles/release/server.yml
index 64587aa1adb9afac3b32c0e74779566ba88cbc7c..c4d98eb746d7c5418dce6d0dca2fe89da137d680 100644
--- a/examples/dubbo/go-server/profiles/release/server.yml
+++ b/examples/dubbo/go-server/profiles/release/server.yml
@@ -42,7 +42,7 @@ services:
 
 protocols:
   -   name: "dubbo"
-      ip : "127.0.0.1"
+  #    ip : "127.0.0.1"
       port : 20000
   #-   name: "jsonrpc"
   #    ip: "127.0.0.1"
diff --git a/examples/dubbo/go-server/profiles/test/server.yml b/examples/dubbo/go-server/profiles/test/server.yml
index 64587aa1adb9afac3b32c0e74779566ba88cbc7c..c4d98eb746d7c5418dce6d0dca2fe89da137d680 100644
--- a/examples/dubbo/go-server/profiles/test/server.yml
+++ b/examples/dubbo/go-server/profiles/test/server.yml
@@ -42,7 +42,7 @@ services:
 
 protocols:
   -   name: "dubbo"
-      ip : "127.0.0.1"
+  #    ip : "127.0.0.1"
       port : 20000
   #-   name: "jsonrpc"
   #    ip: "127.0.0.1"
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 b410813c74a7432cbbe1f2e7627faba9ebb17e70..0e4a9267715b27ebc6f1bd5174d579461072f276 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
@@ -51,7 +51,16 @@ public class Consumer {
             System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
                      " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
                      + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+
+            User user9 = userProvider.GetUser1("A003");
+        } catch (Exception e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+        try {
+            userProvider.GetErr("A003");
         } catch (Exception e) {
+            System.out.println("*************exception***********");
             e.printStackTrace();
         }
     }
diff --git a/examples/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/examples/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index d5bce8105673a24d78ddd3a636788d1ccf8e57a6..036f46332105710ffcc53465b487ada860c25172 100644
--- a/examples/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/examples/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
@@ -20,6 +20,8 @@ import java.util.List;
 
 public interface UserProvider {
 	User GetUser(String userId);
+	User GetErr(String userId) throws Exception;
+	User GetUser1(String userId);
 
 	List<User> GetUsers(List<String> userIdList);
 	User GetUser0(String userId, String name);
diff --git a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index b75740bbcd26a6438d22f7d3bf08fa5e316f7aa7..bb1d9a9d42444b1782d919c6a62ac2fc60e509b1 100644
--- a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -14,6 +14,8 @@ public interface UserProvider {
 
     User GetUser0(String userId, String name);
 
+	User GetErr(String userId) throws Exception;
+
     Map<String, User> GetUserMap(List<String> userIdList);
 
     User getUser(int usercode);
diff --git a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
index f0d7faf3df40c3d422407ddf4d2f2c501e1efdf7..9eaf989a8204be5a7b0065b23dfec88eff837854 100644
--- a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
+++ b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
@@ -35,7 +35,9 @@ public class UserProviderAnotherImpl implements UserProvider {
     public User GetUser0(String userId, String name) {
                 return new User(userId, name, 48);
     }
-
+    public User GetErr(String userId) throws Exception {
+        throw new Exception("exception");
+    }
     public List<User> GetUsers(ArrayList<String> userIdList) {
         Iterator it = userIdList.iterator();
         List<User> userList = new ArrayList<User>();
diff --git a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 1311bd807d59d8336f4ada1296d3a05abd31a548..f8875651096ef719182eb0eeffb779de16425702 100644
--- a/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/examples/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -32,6 +32,9 @@ public class UserProviderImpl implements UserProvider {
     public User GetUser(String userId) {
         return new User(userId, "zhangsan", 18);
     }
+    public User GetErr(String userId) throws Exception {
+        throw new Exception("exception");
+    }
     public User GetUser0(String userId, String name) {
             return new User(userId, name, 18);
     }
diff --git a/examples/jsonrpc/go-client/app/client.go b/examples/jsonrpc/go-client/app/client.go
index dcefd9762425afca996c5caf8217e5b921ac74fa..30a4ed1692d650a2580c008dde6f834e2c29b81e 100644
--- a/examples/jsonrpc/go-client/app/client.go
+++ b/examples/jsonrpc/go-client/app/client.go
@@ -28,9 +28,6 @@ import (
 
 import (
 	"github.com/apache/dubbo-go/common/logger"
-)
-
-import (
 	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
 	"github.com/apache/dubbo-go/config"
 	_ "github.com/apache/dubbo-go/protocol/jsonrpc"
diff --git a/filter/impl/echo_filter.go b/filter/impl/echo_filter.go
index d2a00108bf2c842057af23dab4d4f09fbb2b0ed7..5eb5a37fa500bd8c180d879240d1c1e367df31ce 100644
--- a/filter/impl/echo_filter.go
+++ b/filter/impl/echo_filter.go
@@ -17,13 +17,10 @@
 
 package impl
 
-import (
-	"github.com/apache/dubbo-go/common/logger"
-)
-
 import (
 	"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/filter"
 	"github.com/apache/dubbo-go/protocol"
 )
diff --git a/go.mod b/go.mod
index f13826387f3c537a1b0e4ea05cb9e9c2231a893d..66757f22f3d92c7c6c4ef8287756f7a1cd959ed0 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-20190526221400-d5610bbd0a41
+	github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56
 	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 3da2865342a319a4351757706f31a313afe850ed..db094a9133b7aa65f0eaeb9274499fbc3141b081 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-20190526221400-d5610bbd0a41 h1:lNtW7+aN8oBdCoEuny0rOqOkL5duI4Cu3+G8vqibX48=
-github.com/dubbogo/hessian2 v0.0.0-20190526221400-d5610bbd0a41/go.mod h1:XFGDn4oSZX26zkcfhkM/fCJrOqwQJxk/xgWW1KMJBKM=
+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/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/client_test.go b/protocol/dubbo/client_test.go
index 1183bd00d212f0c49ed8ec70fabaa34e6e24701c..0a02739a86d9ed6bffc0b209152ac789faee87f3 100644
--- a/protocol/dubbo/client_test.go
+++ b/protocol/dubbo/client_test.go
@@ -22,13 +22,17 @@ import (
 	"sync"
 	"testing"
 	"time"
+)
 
-	hessian "github.com/dubbogo/hessian2"
+import (
+	"github.com/dubbogo/hessian2"
+	perrors "github.com/pkg/errors"
+	"github.com/stretchr/testify/assert"
+)
 
+import (
 	"github.com/apache/dubbo-go/common"
 	"github.com/apache/dubbo-go/protocol"
-	perrors "github.com/pkg/errors"
-	"github.com/stretchr/testify/assert"
 )
 
 type (
@@ -80,7 +84,7 @@ func TestClient_Call(t *testing.T) {
 
 	user = &User{}
 	err = c.Call("127.0.0.1:20000", url, "GetUser1", []interface{}{"1", "username"}, user)
-	assert.EqualError(t, err, "java exception:error")
+	assert.EqualError(t, err, "got exception: error")
 
 	user2 := []interface{}{}
 	err = c.Call("127.0.0.1:20000", url, "GetUser2", []interface{}{"1", "username"}, &user2)
diff --git a/protocol/dubbo/listener.go b/protocol/dubbo/listener.go
index 59ffd3e1e554e2be9a9dfef25f31d1e06211d938..84be5818825f1abf1d92c21473733a5e4d6137fb 100644
--- a/protocol/dubbo/listener.go
+++ b/protocol/dubbo/listener.go
@@ -211,7 +211,7 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
 			constant.VERSION_KEY:   p.Service.Version,
 		}))
 		if err := result.Error(); err != nil {
-			p.Header.ResponseStatus = hessian.Response_SERVER_ERROR
+			p.Header.ResponseStatus = hessian.Response_OK
 			p.Body = err
 			h.reply(session, p, hessian.PackageResponse)
 			return
@@ -260,15 +260,15 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 
 	defer func() {
 		if e := recover(); e != nil {
-			req.Header.ResponseStatus = hessian.Response_BAD_REQUEST
+			req.Header.ResponseStatus = hessian.Response_SERVER_ERROR
 			if err, ok := e.(error); ok {
 				logger.Errorf("callService panic: %#v", err)
-				req.Body = e.(error)
+				req.Body = perrors.WithStack(err)
 			} else if err, ok := e.(string); ok {
 				logger.Errorf("callService panic: %#v", perrors.New(err))
 				req.Body = perrors.New(err)
 			} else {
-				logger.Errorf("callService panic: %#v", e)
+				logger.Errorf("callService panic: %#v, this is impossible.", e)
 				req.Body = e
 			}
 		}
@@ -277,7 +277,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 	svcIf := req.Body.(map[string]interface{})["service"]
 	if svcIf == nil {
 		logger.Errorf("service not found!")
-		req.Header.ResponseStatus = hessian.Response_SERVICE_NOT_FOUND
+		req.Header.ResponseStatus = hessian.Response_BAD_REQUEST
 		req.Body = perrors.New("service not found")
 		return
 	}
@@ -285,7 +285,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 	method := svc.Method()[req.Service.Method]
 	if method == nil {
 		logger.Errorf("method not found!")
-		req.Header.ResponseStatus = hessian.Response_SERVICE_NOT_FOUND
+		req.Header.ResponseStatus = hessian.Response_BAD_REQUEST
 		req.Body = perrors.New("method not found")
 		return
 	}
@@ -322,8 +322,8 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 		retErr = returnValues[1].Interface()
 	}
 	if retErr != nil {
-		req.Header.ResponseStatus = hessian.Response_SERVER_ERROR
-		req.Body = retErr.(error)
+		req.Header.ResponseStatus = hessian.Response_OK
+		req.Body = perrors.WithStack(retErr.(error))
 	} else {
 		req.Body = replyv.Interface()
 	}
diff --git a/registry/directory/directory.go b/registry/directory/directory.go
index 1003baf5df7bb659200bb12e118e9113577051af..32841be5f68b07b1f87d2080834de83debb53893 100644
--- a/registry/directory/directory.go
+++ b/registry/directory/directory.go
@@ -23,7 +23,6 @@ import (
 )
 
 import (
-	"github.com/apache/dubbo-go/common/logger"
 	perrors "github.com/pkg/errors"
 )
 
@@ -32,6 +31,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/protocol"
 	"github.com/apache/dubbo-go/protocol/protocolwrapper"
 	"github.com/apache/dubbo-go/registry"
diff --git a/registry/protocol/protocol.go b/registry/protocol/protocol.go
index e318bd097cc0122f3e0ecf4db222da0edef64c46..ff33b5fe6e063257c12035f3262e0daae874363e 100644
--- a/registry/protocol/protocol.go
+++ b/registry/protocol/protocol.go
@@ -21,14 +21,11 @@ import (
 	"sync"
 )
 
-import (
-	"github.com/apache/dubbo-go/common/logger"
-)
-
 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/protocol"
 	"github.com/apache/dubbo-go/protocol/protocolwrapper"
 	"github.com/apache/dubbo-go/registry"
diff --git a/registry/zookeeper/listener.go b/registry/zookeeper/listener.go
index d2cebde2ad7eabd9554069a969a390f193552d6c..711b876ef2bb2339423a56423155441ae54657f3 100644
--- a/registry/zookeeper/listener.go
+++ b/registry/zookeeper/listener.go
@@ -26,13 +26,13 @@ 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"
+	"github.com/apache/dubbo-go/common/logger"
 	"github.com/apache/dubbo-go/registry"
 )