node-zookeeper-dubbo一、主要流程及必要参数1、生成node-zookeeper-dubbo实例register:zookeeperdubboVer的注册地址:后端dubbo使用的版本服务依赖:自定义几个接口名interface:真正的dubbo接口名methodSignature:真实dubbo接口名下的方法名和对应的参数2,node-zookeeper-dubbo实例调用dubbo方法1,自己创建http请求2,在http请求中调用dubbo方法(注意定义参数的格式和传递给java的参数定义参数的模型类名)二、代码node-dubbo.jsconstZookeeperDubbo=require('node-zookeeper-dubbo');constapp=require('express')();varjava=require('js-to-java');constDubbo=newZookeeperDubbo({application:{name:'provider'},registry:'172.29.8.100:2181',dubboVer:'2.8.4',root:'dubbo',dependencies:{IUserApi:{interface:'com.xxx.api',超时:6000,methodSignature:{getUserLists:(Obj)=>[{$class:'com.xxx.model',$:Obj}],}}}})app.get('/foo',(req,res)=>{constcustomerObj={$class:'com.xxx.model',$:{userName:java.String('test'),uin:java.String('1000000000000')}};Dubbo.IUserApi.getUserLists(自定义rObj).then(data=>{console.log('data--------'+data);res.send(data)}).catch(err=>{console.log('err--------'+err);res.send(err)})})app.listen(9090)package.json{"name":"dubbo","version":"1.0.0","description":"","main":"node-dubbo.js","dependencies":{"express":"^4.16.4","js-to-java":"^2.6.1","node-zookeeper-dubbo":"^3.0.15"},"devDependencies":{},"scripts":{"test":"echo\"Error:notestspecified\"&&exit1"},"author":"","license":"ISC"}三、运行1、nodenode-dubbo.js(会提示初始化成功Dubboserviceinitdone)2、浏览器运行创建的界面本身(成功会返回dubbo接口对应方法的返回值)http://localhost:9090/foo4、bug1,安装3.0.0及以下版本的node-zookeeper-dubbo时,会报错报错,初始化不成功2,Failtodecoderequestdueto:RpcInvocation注释掉node-zookeeper-dubbo包中libs下encode.js文件中的如下代码(针对dubbox,但后端使用dubbo)//if(ver.startsWith("2.8")){//body.write(-1);//fordubbox2.8.X//}五、githttps://github.com/omnip620/n...https://github.com/omnip620/n...六、待研究的dubbo-jshttps://github.com/apache/dub...
