Nashorn 访问 Java 对象的方法
Nashorn access Java object's methods
我有下面的代码,是class定义bean,创建bean时RabbitTemplate注入的地方:
public class A {
private RabbitTemplate rabbitTemplate;
public A(RabbitTemplate rabbitTemplate) {
this.rabbitTemplate = rabbitTemplate;
}
public void sendMessage(Message message) {
...
rabbitTemplate.send(message);
...
}
public void receiveMessage(Message message) {
...
invocable.invokeFunction("main", message.toJSObject());
...
}
}
receiveFunction
当我们在队列中获取一些消息时运行,它调用在 javascipt 代码中定义并加载到 ScriptEngine 的函数 main
。
我希望能够从 javascript 代码中调用函数 sendMessage
。
我该怎么做?
使用ScriptContext
解决
engine.getBindings(ScriptContext.ENGINE_SCOPE).put("A", this);
我有下面的代码,是class定义bean,创建bean时RabbitTemplate注入的地方:
public class A {
private RabbitTemplate rabbitTemplate;
public A(RabbitTemplate rabbitTemplate) {
this.rabbitTemplate = rabbitTemplate;
}
public void sendMessage(Message message) {
...
rabbitTemplate.send(message);
...
}
public void receiveMessage(Message message) {
...
invocable.invokeFunction("main", message.toJSObject());
...
}
}
receiveFunction
当我们在队列中获取一些消息时运行,它调用在 javascipt 代码中定义并加载到 ScriptEngine 的函数 main
。
我希望能够从 javascript 代码中调用函数 sendMessage
。
我该怎么做?
使用ScriptContext
engine.getBindings(ScriptContext.ENGINE_SCOPE).put("A", this);