问题标签 [jsr223]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
648 浏览

java - 使用 rvm jruby install 在 Java 代码中嵌入 JRuby

我正在尝试从 Java 应用程序中嵌入和评估 ruby​​ 代码。我需要能够使用随 rvm 安装的 jruby 环境,而不是将 jruby-complete.jar 放在我的类路径中。我可以执行基本的内核代码,但我遇到了需要标准库(fileutils、tmpdir 等)的问题。

我在下面创建了使用通过 RVM 安装的 JRuby 的测试文件,如果您有本地 rvm + jruby 安装(将 JRUBY_VERSION 更改为安装的版本),任何人都应该能够编译+运行它。我意识到我引用的 jruby.jar 与 jruby-complete.jar 不同,但我希望有一种方法可以在不下载外部 jar 的情况下加载标准库。

0 投票
2 回答
269 浏览

osgi - Equinox 和 Java 脚本 API

我想创建一个包含脚本引擎(符合 JSR-223 )的 OSGi(Equinox)包,并通过ScriptEngineManager.getEngineFactories().

然而,Java Scripting API 的服务发现机制(jar 文件服务发现)无法发现已安装包中的脚本引擎。

我已经看到关于该主题的一些答案,建议使用 Apache Felix 或 Apache Sling,因为他们有解决方案。但是我想知道Equinox实现是否有办法解决这个问题?

0 投票
3 回答
1906 浏览

ant - 从 ant 执行:“未找到提供程序 com.sun.script.javascript.RhinoScriptEngineFactory”

我正在开发一个使用 JSR 223 的应用程序。

一切正常(单元测试和从命令行执行),除非从 Ant 执行。在这种情况下,通过此错误执行:

JDK7 包括一个 Rhino 的实现,我确信这个类在 rt.jar 中。为什么使用 Ant 执行时没有找到?

JDK 版本:java 版本 "1.7.0_11" Java(TM) SE Runtime Environment (build 1.7.0_11-b21) Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, 混合模式)

ANT 版本:2012 年 5 月 22 日编译的 Apache Ant(TM) 版本 1.8.4

谢谢

测试:

0 投票
1 回答
179 浏览

java - JRS-223 是否涵盖运行时环境?

JSR-223 是否涵盖了从 abcl 到 rhino 到 jython 的各种兼容语言中常见的交互式解释器的规范?

如果不是,那么所有这些语言是按照他们想要的方式在 Java 中创建它们的环境,还是它们大多是用自己的语言(作为库)编写的?

例如:python 交互式解释器是用 python 编写的,还是用 C/Java/C# 编写的,取决于它在哪里运行?


编辑:

我并不是说每种脚本语言都需要一个 REPL,而是说迄今为止我见过的每种基于 JVM 的脚本语言都有一个。如果还没有为标准 REPL 环境建立规范,那么也许是时候这样做了。

0 投票
0 回答
442 浏览

multithreading - Jmeter+Jruby-JSR223示例Request+jmeter属性未分配给超过4个线程

我已经设置了 ant JMeter 任务,它为 JMeter 请求提供了已经为 JMeter 测试计划 (JMX) 分配了 3 个属性的请求,

我在 Jruby 脚本(JSR223 采样器)中读取这些属性,如下所示(对于前 4 个线程,它正确获取所有 3 个属性值并分配给局部变量(pvalue1mpvalue2)..

但问题是从线程 5 开始,它开始抛出异常

我的jruby中有这样的java_import ...

0 投票
1 回答
131 浏览

java - Java - “安全”脚本

有谁知道 Java 平台的任何脚本可以强制限制为提供的函数集(最好绝对没有函数,除非提供)?我已经尝试了几种与 JSR223 兼容的语言,但在所有情况下都能够危及安全性。

我的系统目前在做什么:

  1. 从文件系统加载请求的脚本。
  2. 创建一个上下文来运行脚本
  3. 在新上下文中运行脚本

即使正确配置了安全管理器,什么会阻止恶意脚本内容访问(或更糟——变异)对象中的字段,否则它不应该访问这些字段?如果出现错误或故意为恶意行为定制脚本,这可能会造成一些损害。

0 投票
1 回答
137 浏览

javascript - 来自其他包的包中的 Javascript 和类

我试着描述我的问题。以下配置:

  1. 在 Servicemix 上,我有两个捆绑包:一个带有模型,第二个带有服务。模型包导出模型包,服务包从模型包中导入模型包。
  2. 在服务包中,我有具有一种服务方法的 Web 服务 (CXF):执行。此方法使用两个参数:第一个(String)是 javascript 文件的名称,第二个是参数的映射(HashMap)。该服务使用 javax.scipt.CompiledScript.eval(Bindings bindings) 执行 javascript 脚本。这个想法是在脚本语言中拥有业务逻辑。
  3. javascript 脚本可以通过以下方式访问 Java 对象:

a/ 绑定 - 没有问题。我在脚本中看到我使用 bindings.put(name, object) 添加的所有对象的实例

b/ importPackage(Packages.my.java.package.from.model.bundle) - 现在我遇到了问题:当我尝试使用关键字“new”从模型包中创建 javascript Java 对象时,我收到以下错误:

com.google.code.scriptengines.js.util.ExtendedScriptException 类:org.mozilla.javascript.EcmaError:ReferenceError:“产品”未定义。(#4) 在文件中的 [4]

其中 Product 是模型包中的我的 Java 类,在第 4 行中,我尝试使用以下命令创建此对象:

而且,我认为,非常重要的信息:Servicemix 4.2.0 中的一切都很好。现在我必须升级到 4.3.1 并且不起作用(两个版本都来自 Fusesource)

有什么帮助吗?

问候, 雅克

0 投票
2 回答
132 浏览

jsr223 - Fantom 是否支持 JSR-223?

Fantom 编程语言是否直接或通过第三方实现支持 JSR-223?也就是说,可以使用 Fantom 通过“javax.script”API 编写 Java 对象的脚本吗?

0 投票
1 回答
4182 浏览

eclipse - 在 Eclipse 中调试已编译的 Groovy 脚本

我正在尝试从 JUnit 测试中调试 Eclipse 中的 Groovy 脚本。Groovy 代码是在 Tomcat 中运行的大型 Java 应用程序的一部分。由于各种原因,我们的系统设置为使用已编译的 JSR223 表达式。这是缩写的代码片段:

测试运行良好,但即使我在 Foo.groovy 中设置了断点,并且文件位于类路径中,调试时断点也不会被命中。我猜这不起作用,因为字符串格式的表达式与包含它的实际文件之间没有关联。那么有没有办法在字符串与其对应的文件名之间创建这种关联?如前所述,我需要使用 CompiledScript。作为旁注,当使用这种方法时,我已经能够使用相同的 Groovy 脚本在调试器中命中断点:

当然,在这种情况下,Groovy 引擎直接加载文件。非常感谢有关如何使第一个示例工作的任何提示。谢谢。

0 投票
1 回答
200 浏览

java - Java Scripting (jsr223):是否可以(重新)添加 rhino 编译功能

甲骨文在 jdk6 中包含了一只被剥皮的犀牛

剥离的功能之一是 rhino js 到字节码编译器

是否可以在应用程序级别包含它?

我想在不改变 jsr223 调用的情况下提高性能