gpt4 book ai didi

javascript - 从客户端上的 javascript 调用 Java API(无 Web 服务)

转载 作者:行者123 更新时间:2023-11-29 07:36:21 25 4
gpt4 key购买 nike

我需要一种从本地客户端上的 javascript 代码使用 Java API (jar) 的方法。这可以实现吗?如何实现?


上下文

我有一个 Java API(jar 文件),可以连接到实时信息提要。您可以提交查询,例如打印您将收到的事件:

service.subscribe(query, evt -> print(evt));

出于法律原因,该 API 只能在客户端计算机上使用,因此我无法将其作为 Web 服务从服务器公开。

目标

我想创建一个网页,从网络服务获取数据并将其与从本地 Java API 获取的实时信息数据相结合。

我正在使用 angular 2,但很乐意考虑任何建议。

网络服务

我见过各种类似的问题,但答案往往是:通过网络服务公开 API - 在我的情况下这是不可能的

最佳答案

您可以为此目的使用 java 小程序。

您应该首先制作一个包含对您的方法的调用的小程序:

public class TestApplet extends Applet{

private ? service = ...;

public Object subscribe(Object query) {
return service.subscribe(query, evt -> print(evt));;
}
}

然后可以将此小程序包含在网页的 html 中:

<script src="https://www.java.com/js/deployJava.js"></script>
<script>
<!-- applet id can be used to get a reference to the applet object -->
var attributes = { id:'testApplet', code:'yourpackage.TestApplet', width:1, height:1} ;
var parameters = {jnlp_href: 'test_applet.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.6');
</script>

然后就可以使用javascript调用方法了:

var greeting = testApplet.subscribe("Test");

请注意,applet 因其安全问题而被逐步淘汰,但这在受控和嵌入式环境中是可以接受的。

以下 Oracle 教程提供了有关此技术的更多信息:Invoking Applet Methods From JavaScript Code

关于javascript - 从客户端上的 javascript 调用 Java API(无 Web 服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35359638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com