apache/dubbo-go-hessian2

Java-server使用int类型枚举作为类属性,golang client希望增加个demo

zhushengjun-it opened this issue · 5 comments

What would you like to be added:
Java-server使用int类型枚举作为类属性,golang client希望增加个demo
Why is this needed:
目前公司其他组java后端有很多这样的类型作为类的属性,目前我这边接入使用string枚举的demo,在实现的方法中做了转换,java-server解析会有点问题,希望可以出一个int枚举的demo,可以供参考一下。

@zhushengjun-it java int就直接在golang中用int接收就好,具体枚举值程序判断就好。

我在golang-client 定义结构体中的属性为int时:调用会报错:java exception:Fail to decode request due to: RpcInvocation

如果注释掉这个int的属性参数,那么请求就成功了。

java-server 中这个属性的定义 :
public enum ActionType {
UNDEFINED(0),
...
}
@expose
private ActionType actionType;

我在golang-client 定义结构体中的属性为int时:调用会报错:java exception:Fail to decode request due to: RpcInvocation

如果注释掉这个int的属性参数,那么请求就成功了。

java-server 中这个属性的定义 : public enum ActionType { UNDEFINED(0), ... } @expose private ActionType actionType;

java这样的枚举定义,golang中可能要用string来接收

我在golang-client 定义结构体中的属性为int时:调用会报错:java exception:Fail to decode request due to: RpcInvocation
如果注释掉这个int的属性参数,那么请求就成功了。
java-server 中这个属性的定义 : public enum ActionType { UNDEFINED(0), ... } @expose private ActionType actionType;

java这样的枚举定义,golang中可能要用string来接收

我试了一下 string貌似也不行。我如果注释掉这个字段,java那边收到的这个参数是null。

已解决。
golang定义:

type ActionType struct {
Name string
}

func (a ActionType) JavaClassName() string {
return "actionType的父类名"
}
func (a ActionType) JavaParamName() string {
return "actionType的类名"
}