- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的类路径中有一个 approprivate jar,
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.4.4.Final</version>
<type>jar</type>
</dependency>
该 jar 确实包含 META-INF/services/javax.script.ScriptEngineFactory
文件,其中显示 org.mvel2.jsr223.MvelScriptEngineFactory
,后一个文件确实看起来像脚本引擎工厂。
仍然
private final ScriptEngineManager _scripting = new ScriptEngineManager(null);
....
ScriptEngine engine = _scripting.getEngineByName("mvel");
返回空值。我检查了工厂的代码,名称 mvel
是有效的:
https://github.com/mvel/mvel/blob/master/src/main/java/org/mvel2/jsr223/MvelScriptEngineFactory.java
我的 java 是 Ubuntu 18.04.2 LTS 上的 java-8-openjdk-amd64
。
我总是可以手动将 mvel 添加到脚本管理器,但我应该吗?目前仅发现 Nashorn
最佳答案
脚本引擎通过 META-INF/services/javax.script.ScriptEngineFactory 注册,其中包含数据:
org.mvel2.jsr223.MvelScriptEngineFactory
首先,确保您实际打包的 JAR 包含此文件和文本。请注意,打包在单个大 jar 文件中可能会导致该文件被覆盖或忽略 - 如果这样做,该文件必须包含应用程序引用的所有脚本引擎。找不到该文件也可能是类加载器管理不当的结果。
来自甲骨文: https://docs.oracle.com/javase/8/docs/api/javax/script/compact2-package-summary.html
脚本引擎发现和元数据:写入脚本 API 的应用程序可能对脚本引擎有特定要求。有些可能需要特定的脚本语言和/或版本,而另一些可能需要特定的实现引擎和/或版本。脚本引擎以指定的方式打包,以便在运行时可以发现引擎并查询属性。引擎发现机制基于Jar文件规范中描述的服务发现机制。脚本引擎实现类打包在 jar 文件中,其中包含名为 META-INF/services/javax.script.ScriptEngineFactory 的文本资源。此资源必须为打包在 jar 文件中的每个 ScriptEngineFactory 包含一行。 ScriptEngineManager 包含 getEngineFactories 方法来获取使用此机制发现的所有 ScriptEngineFactory 实例。 ScriptEngineFactory有查询脚本引擎属性的方法。
关于java - 未发现 MVEL 脚本引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56013139/
我有一个 JAVA 类,它有两个方法。第一个是主要方法,第二个是 method1()。 假设以下是类: public class SomeClass() { public static void
我有一个 JAVA 类,它有两个方法。第一个是 main 方法,第二个是 method1()。 假设以下是该类: public class SomeClass() { public static
我在 MVEL 中创建了一个 map ,我必须使用 foreach 对其进行迭代。我该怎么做? 还有一个类似的问题: How to iterate over a map in mvel但在那种情况下,
我看到 MVEL 支持 for 循环和 foreach 模板,但如何从循环中“中断”或“继续”? 最佳答案 文档中没有提及对“中断”或“继续”的支持:http://mvel.codehaus.org/
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
根据 [ http://mvel.codehaus.org/Value+Emptiness 中的 MVEL 文档] empty 如果满足以下条件,则应评估为 true。 字符串的长度大于 0,但仅由空
MVEL 使得向解析器上下文提供自定义函数变得非常容易,但尚不清楚是否有“官方”方法来重载运算符的求值方式。我想到了两个具体的用例: 对数组执行算术应该将操作映射到数组的每个元素上,这样: [1,2,
我想将 MVEL 包含到另一个 MVEL 文件中,我尝试使用 @Include 但它对我不起作用, 任何人都可以建议我如何在另一个 MVEL 文件中使用 MVEL 这是我的代码 Dear @{FIRS
有人知道如何调整 MVEL 以使用不区分大小写的比较吗? Map map = new HashMap<>(); map.put("Name", "Igor"); String property = "
我们目前正在构建自己的产品和框架。我们有一个规则引擎,内部使用 MVEL API 来计算表达式。 最近我们遇到了一个问题 假设我有一个“规则”,其中有很多嵌套的条件。 ( A && ( B && (
我有这个类层次结构 学生类.java public class StudentClass { private List studentList; public List getStud
有没有办法让 MVEL 2.0 ( http://mvel.codehaus.org/ ) 与带有可选参数的函数一起工作? 我希望能够评估这个: trunc('blahblah',2) 还有 trun
我在我的 Java 代码中有预定义的变量,我想在 MVEL 表达式中使用这些变量。我不想传递上下文。 String Col1 = "C"; String Col2 = "D"; String expr
我的类路径中有一个 approprivate jar, org.mvel mvel2 2.4.4.Final jar
当 HashMap 中的顶级键可能存在也可能不存在时,如何解决 PropertyAccessExceptions? 在下面的示例中,如果属性存在,它就可以正常工作,但如果变量映射中不存在该属性,则会抛
我在我的 Java 代码中有预定义的变量,我想在 MVEL 表达式中使用这些变量。我不想传递上下文。 String Col1 = "C"; String Col2 = "D"; String expr
如何在 MVEL 中将字符串转换为整数 Props['MyInteger'] = java.lang.Integer.ParseInt('//某个字符串的 xpath') 其他 java 类型在我的代
我需要计算 MVEL 中包含日期的表达式。基本上,我需要向给定日期添加一定的天数并获取值。当我尝试评估 MVEL 中的表达式时,出现一些异常。 这是我的代码:: package Mvel; impor
对象 obj=帐户;这里的帐户对象包含书籍作为内部对象。那么我如何访问 mvel 中的这些值。 我是 MVEL 新手。那么您能否建议我如何克服上述问题。 最佳答案 MVEL 适用于 OGNL。 假设A
如果我在 MVEL 中有这个脚本: myString = null; if (myString == "Foo") { return true; } 我会在这个脚本中得到一个空指针吗? 因为我
我是一名优秀的程序员,十分优秀!