欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node調(diào)用Java的示例代碼

 更新時(shí)間:2017年09月20日 17:13:30   作者:丁亮  
本篇文章主要介紹了Node調(diào)用Java的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

Java 端作為服務(wù)提供者,基于Dubbo 實(shí)現(xiàn)服務(wù)并通過 Dubbo Hessian 擴(kuò)展暴露服務(wù);Node 端作為服務(wù)消費(fèi)者,通過node-hessian 調(diào)用 Java 端的服務(wù)。

Java 端

服務(wù)接口

package com.yuanxin.paas.ssb;
 
public interface TestService {
 
  /**
   * 測試:無參,無返回值。
   */
  void test();
   
  /**
   * 測試:原生類型參數(shù)與返回值。
   * 
   * @param i
   * @return 
   */
  String test0(int i);
   
  /**
   * 測試:無參,自定義類型返回值。
   * 
   * @return 
   */
  Result test1();
   
  /**
   * 測試:自定義類型參數(shù),無返回值。
   * 
   * @param arg 
   */
  void test2(Arg arg);
   
  /**
   * 測試:自定義參數(shù),自定義返回值。
   * 
   * @param arg
   * @return 
   */
  Result test3(final Arg arg);
}

自定義參數(shù)類

package com.yuanxin.paas.ssb;
 
import java.io.Serializable;
 
public class Arg implements Serializable {
 
  private int i;
 
  public int getI() {
    return i;
  }
 
  public void setI(int i) {
    this.i = i;
  }
 
}

自定義返回值類

package com.yuanxin.paas.ssb;
 
import java.io.Serializable;
 
public class Result implements Serializable {
 
  private int i;
 
  private String string;
 
  public int getI() {
    return i;
  }
 
  public void setI(int i) {
    this.i = i;
  }
 
  public String getString() {
    return string;
  }
 
  public void setString(String string) {
    this.string = string;
  }
 
}

Dubbo 配置略。

Node 端

node-hessian

安裝 node-hessian:

npm install hessian-proxy

調(diào)用服務(wù)接口

var Proxy = require('hessian-proxy').Proxy;
 
var proxy = new Proxy('http://127.0.0.1:9098/test-provider/provider/com.yuanxin.paas.ssb.TestService', '', '', proxy);
 
proxy.invoke('test', null, function (err, reply) {
  console.log('test: ' + reply);
});
 
proxy.invoke('test0', [25], function (err, reply) {
  console.log('test0: ' + JSON.stringify(reply));
})
 
proxy.invoke('test1', null, function (err, reply) {
  if (err) {
    console.log('test1: ' + err);
  }
 
  console.log('test1: ' + JSON.stringify(reply));
})
 
var argForTest2 = {
  i: 2
};
 
argForTest2.__type__ = 'com.yuanxin.paas.ssb.Arg';
 
proxy.invoke('test2', [argForTest2], function (err, reply) {
  if (err) {
    console.log('test2: ' + err);
  }
 
  console.log('test2: ' + JSON.stringify(reply));
})
 
 
var argForTest3 = {
  i: 3
};
 
argForTest3.__type__ = 'com.yuanxin.paas.ssb.Arg';
 
proxy.invoke('test3', [argForTest3], function (err, reply) {
  if (err) {
    console.log('test3: ' + err);
  }
 
  console.log('test3: ' + JSON.stringify(reply));
})

運(yùn)行結(jié)果

Java 端

Node 端

總結(jié)

Dubbo 非常贊,提供了對 Hessian 原生協(xié)議的支持;Node 調(diào)用起來也非常簡單,不過還是有幾個(gè)點(diǎn)需要注意一下:

  • 接口方法不能重載(接口里的方法必須使用不同的方法名)
  • 自定義類型的命名空間服務(wù)端與消費(fèi)端要一致(com.yuanxin.paas.ssb.Arg)
  • 服務(wù)端自定義類型需要實(shí)現(xiàn)序列化接口(java.io.Serializable)
  • 盡量使用簡單的自定義類型結(jié)構(gòu)(避免嵌套)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node搭建https服務(wù)器實(shí)例詳解

    Node搭建https服務(wù)器實(shí)例詳解

    這篇文章主要介紹了Node搭建https服務(wù)器的方法,結(jié)合實(shí)例形式詳細(xì)分析了創(chuàng)建ssl證書以及node.js調(diào)用https模塊搭建https服務(wù)器的相關(guān)操作技巧,需要的朋友可以參考下
    2023-04-04
  • 傻瓜式解讀koa中間件處理模塊koa-compose的使用

    傻瓜式解讀koa中間件處理模塊koa-compose的使用

    這篇文章主要介紹了傻瓜式解讀koa中間件處理模塊koa-compose的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作實(shí)例分析

    Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作實(shí)例分析

    這篇文章主要介紹了Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作,結(jié)合實(shí)例形式分析了node.js查詢MongoDB數(shù)據(jù)庫及vue前臺頁面渲染等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • node搭建后臺的實(shí)現(xiàn)步驟

    node搭建后臺的實(shí)現(xiàn)步驟

    本文介紹了使用Node.js搭建后臺的實(shí)現(xiàn)步驟,文章詳細(xì)闡述了每個(gè)步驟的實(shí)現(xiàn)過程,并給出了示例代碼,對于想要了解如何使用Node.js搭建后臺的讀者具有一定的參考價(jià)值
    2023-08-08
  • 利用Node.js和MySQL實(shí)現(xiàn)創(chuàng)建API服務(wù)器

    利用Node.js和MySQL實(shí)現(xiàn)創(chuàng)建API服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了如何使用Node.js和MySQL創(chuàng)建API服務(wù)器的步驟,這也是從前端邁向全棧的一個(gè)開始,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-01-01
  • 深入探究node之Transform

    深入探究node之Transform

    這篇文章主要介紹了深入探究node之Transform,本文深入內(nèi)部闡述Transform的運(yùn)行機(jī)理及使用技巧,有興趣的可以了解一下
    2017-07-07
  • Node 搭建一個(gè)靜態(tài)資源服務(wù)器的實(shí)現(xiàn)

    Node 搭建一個(gè)靜態(tài)資源服務(wù)器的實(shí)現(xiàn)

    這篇文章主要介紹了Node 搭建一個(gè)靜態(tài)資源服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • npm的lock機(jī)制解析

    npm的lock機(jī)制解析

    這篇文章主要介紹了npm的lock機(jī)制解析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • 手把手教你通過nodejs快速搭建一個(gè)服務(wù)器

    手把手教你通過nodejs快速搭建一個(gè)服務(wù)器

    這篇文章主要給大家介紹了關(guān)于如何通過nodejs快速搭建一個(gè)服務(wù)器的相關(guān)資料,在node.js中創(chuàng)建一個(gè)服務(wù)器非常簡單,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 一文秒懂nodejs中的異步編程

    一文秒懂nodejs中的異步編程

    這篇文章主要介紹了深入理解nodejs中的異步編程,本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評論