node 호출dubbo 인터페이스
3110 단어 node
node 호출dubbo 인터페이스
node-zookeeper-dubbo
1. 주요 과정과 필요 매개 변수
1, node-zookeeper-dubbo 생성 실례
2, node-zookeeper-dubbo 실례 호출dubbo 방법
1, 스스로 http 요청 만들기
2, http 요청에서 dubbo 방법을 호출합니다 (파라미터의 정의 형식과 자바 정의 파라미터를 전송할 모델 클래스 이름 주의)
코드
node-dubbo.js
const ZookeeperDubbo = require('node-zookeeper-dubbo');
const app=require('express')();
var java = require('js-to-java');
const Dubbo = new ZookeeperDubbo({
application: { name: 'provider' },
registry: '172.29.8.100:2181',
dubboVer: '2.8.4',
root: 'dubbo',
dependencies: {
IUserApi: {
interface: 'com.xxx.api',
timeout: 6000,
methodSignature: {
getUserLists : (Obj) => [{$class: 'com.xxx.model',$:Obj}],
}
}
}
})
app.get('/foo',(req,res)=>{
const customerObj = {
$class: 'com.xxx.model',
$: {
userName: java.String('test'),
uin: java.String('1000000000000')
}
};
Dubbo.IUserApi
.getUserLists(customerObj)
.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: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
운행
1,node node-dubbo.js (성공적인 Dubbo 서비스 init done 초기화 알림) 2, 브라우저가 자신이 만든 인터페이스를 실행합니다. (Dubbo에 대응하는 인터페이스의 방법의 반환값을 되돌려줍니다)http://localhost:9090/foo
넷, 버그
1,node-zookeeper-dubbo의 3.0.0 및 이하 버전을 설치하면 오류가 발생하여 초기화에 성공하지 못합니다
2, Fail to decode request due to: RpcInvocation node-zookeeper-dubbo 패키지에서libs의 encode를 주석 해제합니다.js 파일의 다음 코드 (dubbox에 대한 것이지만 백엔드는 dubbo를 사용합니다)
// if (ver.startsWith("2.8")) {
// body.write(-1); //for dubbox 2.8.X
// }
다섯,git
https://github.com/omnip620/node-zookeeper-dubbo https://github.com/omnip620/node-zookeeper-dubbo/issues/50
연구
dubbo-js https://github.com/apache/dubbo-js
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.