Ray
Ray
目前是基于这个版本编译的,
可以确认一下error日志中是否有什么异常。 grpc导出的服务,必须是由grpc生成的service,直接用MotanDemoService是不行的。
grpc是一种兼容方案,前提条件就是已经有了grpc服务了,所以如果使用新grpc服务需要自行创建。 如果仅仅使用pb对象作为参数的话,可以修改server和client端的serialization配置 serialization: protobuf
这个是编译时自动生成的类,maven编译一下demo项目就可以了。相关机制可以参考[这里]( https://github.com/weibocom/motan/wiki/zh_quickstart#%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8)
可以检查: 1. server端的提供服务开关是否打开了。 MotanSwitcherUtil.setSwitcherValue(MotanConstants.REGISTRY_HEARTBEAT_SWITCHER, true); 2. 确认server端是否正确注册到zk注册中心 可以通过查看server端启动日志,看有没有`will set to available to Registry`相关的info 日志。 也可以通过manage后台,或者直接查看zk的/motan/${group}/${service}/server路径下看是否有提供服务的节点。
你这俩service名都不一样啊。。。肯定not exist呀。。 com.example.motan.service.HelloService com.example.customer.service.FooService
根据client端的报错来看,是server端没有提供`serviceKey=default_rpc/com.example.customer.service.FooService/1.0`服务。serviceKey是由group、service和version组成,你可以确认一下client和server这几个参数配置是否一样吧。 也可以先配置成直连server的服务端口看是否能调通吧
可以提供一下service对应的xml配置,看看是不是配置method配置的不对。 ` setMethods(MethodConfig methods)`这个方法只是给api方式预留的,正常配置加载流程中应该没有使用到这个方法
motan提供的api方式只是简单设置属性,export流程和xml方式是一致的。 我觉得`BeanUtil.copyProperties(serviceConfig, serviceConfig2);`这个方法有些嫌疑,有可能是copy属性值时用错了setter方法。你可以debug调试看看。或者不使用这种反射赋值方式。
我觉得你可以把`BeanUtil.copyProperties(serviceConfig, serviceConfig2);`改成直接赋值的方式试试