dubbo接口调用成功了,但是返回为null

右手残废 发布于 2015/11/06 16:27
阅读 12K+
收藏 0

@dubbo 你好,想跟你请教个问题:

dubbo接口正常调用成功了,但是返回为null,实际上dubbo是有返回值的,请问这可能是哪块有问题。

我使用的是注解方式调用,而且已配置了版本号。

加载中
0
芳哥
芳哥

1.可能是有多套服务端在运行,调用到了别的服务器,而非你认为的服务器

2.有些对象序列化或继承结构的问题会导致获取值为null,例如:父类和子类都有ID属性,父类和子类的ID值不一致(例如父类ID为null,子类正常值),在调用完成反序列化时,只会调用一次setId的方法,此时会造成ID为null,其他属性如果有如此结构也会发生该问题

Heanes
Heanes
这个问题今天踩坑了,继承时发生的
a
aaronLyu
该评论暂时无法显示,详情咨询 QQ 群:点此入群
Bugunao
Bugunao
回复 @右手残废 : 楼主, 你的问题解决了吗? 我遇到和你一样的问题
xiaolongge
xiaolongge
@右手残废 你的这个问题解决了吗
右手残废
目前你说的两种情况和我们这边的都没关系。 1、已经肯定是调到服务提供者了,因为目前只有单一的提供者。 2、dubbo之间数据传输都是字符串,基本上没用到对象。
0
Bugunao
Bugunao

同样的代码

String id = idService.getId(); //同样的代码第一次调用返回为空
id = idService.getId(); //代码中再执行一次就有返回值了



这个问题的解决, 还没有思路. 现在怀疑是不是dubbo的问题. 

0
daveztong
daveztong
遇到了类似的问题,provider返回了值,但在consumer端获取的值时而相同,时而不相同。不知道有没有人找到问题或解决方案。目前怀疑序列化有问题。
0
p
plg17

我遇到的问题更奇葩:

客户端代码:

@Autowired
private ShopDeliverCompanyService shopDeliverCompanyService;

ShopDeliverCompany = shopDeliverCompany shopDeliverCompanyService.getOneShopDeliverCompany(shopDeliverCompanyId);

方法getOneShopDeliverCompany中就一个简单的DAO查询,里面打印日志,确定查询是有结果的,但是客户端收到的值为NULL。条件相同,反复测试,收到的结果都是NULL。

---------------------------------------------------------------------------

然后在接口ShopDeliverCompanyService中新添一个方法getShopDeliverCompanyById,这个方法getOneShopDeliverCompany方法的唯一区别就是方法名不一样,方法体是一样的。

ShopDeliverCompany shopDeliverCompany = shopDeliverCompanyService.getShopDeliverCompanyById(shopDeliverCompanyId);

客户端这样调用,收到的值就正确了。

目前问题无解中,郁闷。有谁能解答,dubbo版本2.8.4

p
plg17
回复 @aaronLyu : 我知道原因了,都忘记回复了。这个问题可能是zookeeper的缓存问题,重启zookeeper之后,问题就解决,反正我的问题是这么解决的。
a
aaronLyu
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
l
luyuqinge
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
樱花小熊
樱花小熊
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
守望星空那一边
守望星空那一边

是不是dubbo的provider的服务设置为了异步服务,

异步服务的话在消费者里需要这样取返回值:

helloService.getHello();
Future<String> future = RpcContext.getContext().getFuture();
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部