当前位置: 首页 > 知识库问答 >
问题:

Dojo没有加载到java中的rhino Emmbed中

汝宏伯
2023-03-14

我试图呈现dojo图表服务器端。我遇到了Rhino和envjs服务器端浏览器仿真。当我尝试一个示例程序来加载嵌入java impl的犀牛中的dojo.js时,异常被抛出,

异常在线程"main"javax.script.ScriptExctive:sun.org.mozilla.javascript.ecmaError:引用错误:"位置"没有定义。(#15)在第15行。

我的代码如下:

import javax.script.*;
import java.io.*;

public class Java6RhinoRunner {
  public static void main(String[] args) throws ScriptException {
    new Java6RhinoRunner().load(args[0]);
  }

  private final ScriptEngine engine;

  public Java6RhinoRunner() throws ScriptException {
    ScriptEngineManager factory = new ScriptEngineManager();
    this.engine = factory.getEngineByName("JavaScript");

    this.engine.put("Java6RhinoRunner", this);
    this.engine.eval("function load(filename) { Java6RhinoRunner.load(filename); }");
  }

  public void load(String filename) throws ScriptException {
    try {
      this.engine.eval(new FileReader(filename));
    }
    catch(FileNotFoundException e) {
      throw new RuntimeException("Error loading javascript file: " + filename, e);
    }
  }
}

谷歌搜索了很多次,但都是徒劳的。请帮我解决这个问题

共有1个答案

包兴思
2023-03-14

代码失败是因为Dojo检测到它在Rhino环境中运行的方式。

Dojo代码是为了与Rhino的shell(org.mozilla.javascript.tools.shell.Main)兼容而编写的,它通过查找由org定义的特性来检测Rhino。mozilla。javascript。工具。壳全局。如果这些都不存在,Dojo会假定它是在浏览器环境中运行的。

通过在脚本引擎中定义这些特性,可能可以模拟这些特性,但我还没有尝试过。

我写了一篇关于在嵌入式Rhino中运行Dojo的博文,但它没有使用ScriptEngineAPI。

 类似资料:
  • 展示了如何调试问题,即PHP模块没有加载到PHP中。 我使用OpenSUSEV42。2个Linux操作系统,带有Apache Web服务器,PHP v7。1、Mysql。 因为它不提供PHPV7。1我需要,我构建了PHPV7。1来源。使用PHP-FPM。 我把它安装到 php.ini在: 我发现,opcache安装到 我编辑了php。ini并添加了以下行: 重新启动: 但我还是得到了以下结果: [

  • 我对log4j相当陌生。正在尝试使用log4j2。要配置的xml。我将该文件添加到构建路径,它工作了一次,但不再工作。 这是我的log4j2.xml: 我把它拆下来,只是为了测试它,让它工作。我检查了调试,并且记录器配置使用默认值。 我还试着给文件命名log4j2-test.xml. 有什么想法吗? 谢啦

  • 问题内容: 我正在尝试加载对象(.obj)文件以与three.js一起使用并做出反应(使用react-three-renderer),但得到的My代码如下: 但是,我不断得到:“在’三个’中找不到导出’OBJLoader’(导入为’三个’)有人有主意吗? 问题答案: 因此,似乎添加到react组件上就可以了(怪异,是吗?)。所以我的代码目前看起来像:

  • 当我试图访问我的站点时,我必须在URL的末尾手动键入index.php。我正在尝试在访问站点时自动加载我的index.php文件。我的nginx配置文件如下所示。

  • 我已经用Gradle 4.0.1安装了Android Studio 2.3.3,它工作得很好,但有一天它似乎没有正确加载。我构建了Gradle,清理并重建了我的项目,它表明构建是正确的,我甚至可以编译,但IDE中的所有内容都是红色的,就像它没有加载库一样。会是什么?很抱歉解释得太短,但这是我的全部。

  • 这是我的pb。 我有一个实体游戏和一个实体控制台 这是一个多个关联。 为了提高性能,我在同一查询中加载游戏和控制台,如下所示: 当我使用