Nashorn访问Java对象的方法

时间:2018-06-20 09:33:50

标签: java nashorn

我有以下代码,它是定义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。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用ScriptContext

解决
engine.getBindings(ScriptContext.ENGINE_SCOPE).put("A", this);