服务器在第二个请求执行Invocable时停止

时间:2017-10-12 04:34:22

标签: java v8 j2v8

执行以下行时,我的服务器停止了第二次请求。

Invocable invocableEngine =  load();
Object o1 = invocableEngine.invokeFunction("add",5,6,jsonObj);


 private static Invocable invocable =null;
 public static Invocable load() throws ScriptException, NoSuchMethodException, FileNotFoundException {
        if(invocable!=null){
            return invocable;
        }
    File jsFile = new File("test.js");

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("jav8"); //No I18N
        Reader reader = new FileReader(jsFile);

        engine.eval(reader);
        invocable = (Invocable) engine;
        return invocable;
    }

test.js

add = function(a, b) {
return a + b;
}

我不想为每个请求评估js,所以我使用Invocable作为静态。

这是控制台中抛出的错误

  

Java Runtime Environment检测到致命错误:

     

SIGSEGV(0xb)at pc = 0x0000000121d6f4b4,pid = 791,tid = 33539

     

JRE版本:Java(TM)SE运行时环境(8.0_25-b17)(构建   1.8.0_25-b17)Java VM:Java HotSpot(TM)64位服务器VM(25.25-b02混合模式bsd-amd64压缩oops)有问题的框架:C   [libjav8651059438244345661.dylib + 0x184b4]   _ZN2v811HandleScopeC1Ev +的0x84

     

无法编写核心转储。核心转储已被禁用。启用   核心倾销,尝试" ulimit -c unlimited"再次启动Java之前

     

包含更多信息的错误报告文件保存为:   hs_err_pid791.log

     

如果您想提交错误报告,请访问:
  http://bugreport.sun.com/bugreport/crash.jsp事故发生了   在本机代码中的Java虚拟机之外。看有问题   报告错误的框架。

0 个答案:

没有答案