In diesem Artikel wird hauptsächlich der Beispielcode für Node zum Aufrufen von Java vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor, um einen Blick darauf zu werfen
Die Java-Seite fungiert als Dienstanbieter, implementiert auf Dubbo basierende Dienste und stellt Dienste über die Dubbo-Hesse-Erweiterung bereit. Die Knotenseite fungiert als Dienstkonsument und ruft über diese Seite Dienste auf Knoten-Hessisch.
Java-Seite
Service-Schnittstelle
package com.yuanxin.paas.ssb; public interface TestService { /** * 测试:无参,无返回值。 */ void test(); /** * 测试:原生类型参数与返回值。 * * @param i * @return */ String test0(int i); /** * 测试:无参,自定义类型返回值。 * * @return */ Result test1(); /** * 测试:自定义类型参数,无返回值。 * * @param arg */ void test2(Arg arg); /** * 测试:自定义参数,自定义返回值。 * * @param arg * @return */ Result test3(final Arg arg); }
Benutzerdefinierte Parameterklasse
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; } }
Benutzerdefinierte Rückgabewertklasse
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-Konfiguration wird weggelassen.
Knotenseite
node-hessian
Node-hessian installieren:
npm install hessian-proxy
Serviceschnittstelle aufrufen
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)); })
Laufendes Ergebnis
Java-Seite
Knotenseite
Zusammenfassung
Dubbo ist sehr gut und bietet Unterstützung für das hessische native Protokoll; Node ist auch sehr einfach aufzurufen, aber es gibt noch ein paar Punkte Zu beachten Schauen wir uns Folgendes an:
Schnittstellenmethoden können nicht überladen werden (Methoden in der Schnittstelle müssen unterschiedliche Methodennamen verwenden)
Benutzerdefinierter Typ Namespace-Dienst Der Client und der Verbraucher müssen konsistent sein (com.yuanxin.paas.ssb.Arg)
Der serverseitige benutzerdefinierte Typ muss die Serialisierungsschnittstelle implementieren (java.io.Serializable )
Versuchen Sie, einfache benutzerdefinierte Typstrukturen zu verwenden (vermeiden Sie Verschachtelungen)
Das obige ist der detaillierte Inhalt vonFall, in dem Java von Node aufgerufen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!