我正在扩展一个用Java编写的服务器,我在npm上发现了一个非常好的Node.js包,它提供了一个我想从Java服务器调用的API。
如何实现它们之间的“桥梁”?
答案 0 :(得分:0)
你必须将node.js包裹在node.js程序中,并从该程序中获取可以调用模块中的函数的API,可能通过Web服务器访问它(但是任何进程间通信机制都可以工作)。然后,您必须先运行node.js程序,然后您的Java应用程序才能通过node.js服务器访问node.js功能。
它需要一个node.js解释器来运行node.js Javascript,你只能通过运行一个单独的node.js进程来获得其中一个。因此,您无法在同一进程中直接构建从Java到Javascript的桥梁。您必须创建一个Javascript流程,然后与该单独流程进行通信。
答案 1 :(得分:0)
我能想到的2个选项。
就个人而言,我更喜欢选项#2。如上所述,这将需要安装v8 javascript引擎。
示例:
$(".modal").on("hidden.bs.modal", function(){
$('.modal-content a').removeData('category', 'subcategory');
});
从java代码
运行程序//process.js
console.log('process running');
console.log(process.argv);
console.error(new Error('process error'));
process.exit(0);
标准输出应该是:
ProcessBuilder pb = new ProcessBuilder("node", "process", "one", "three", "five")
Process p = pb.start();
//Get output from p
stderr应该返回:
process running
[ 'node.exe',
'process',
'one',
'tew',
'three']