问题标签 [scriptengine]

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 投票
0 回答
1649 浏览

securitymanager - 带有 SpringSecurity 的 Java SecurityManager

我尝试加入 Java Security Manager 以使用 SpringSecurity (SS) 进行项目。我的目标是:我的项目与 SS 一起使用,并将 dataSource(db2 数据库)作为身份验证管理器。我将 ScriptManager(ScriptEngine) 添加到项目中。现在我尝试设置项目的安全性,拒绝不受信任的代码。我使用 NetBeans 并在 Tomcat (6.0.20) 的属性中设置“使用安全管理器”。接下来,我编辑了 {catalina.base}/conf/catalina.police。我添加了下一个“赠款”:

而现在的问题。当我在调试器下运行我的代码时,我得到下一个错误:

和tomcat出来:

此外,当我插入此赠款时:

一切都好。

操作系统:openSUSE 11.1 OpenJDK 1.6.0.0-b11

对于本教程使用的设置:http: //www.mikeski.net/site/node/18

谢谢大家...

0 投票
1 回答
1760 浏览

java - 将 Jruby ScriptEngine 输出重定向到 StringWriter

我最近在尝试为我的 ruby​​ 会话重定向 ScriptEngine 输出时遇到了一个奇怪的问题。似乎无论我传入我的 ScriptEngine 什么,它总是打印到 stdout 和 stderr。我找到了这篇文章,但它说它已修复。

https://scripting.dev.java.net/issues/show_bug.cgi?id=8

我正在运行 sbt 并使用最新版本的 jruby-complete.jar,但它仍然每次都进入标准输出。这个问题真的解决了吗?

我也尝试传递eval(...)一个 StringWriter,但是当我之后尝试拉出一个字符串时,我得到了一个数组异常。

0 投票
1 回答
2821 浏览

java - JVM 缺少 Rhino

我有一个使用 ScriptEngine 处理一些 javascript 的项目,并且在我的机器上运行良好,但是当我将项目的 jar 发送到服务器时,我发现服务器的 JVM 没有内置 Rhino,返回 null 时代码调用

我去了rhino的下载页面,得到了最新版本,并从中提取了js.jar,将jar添加到项目中,但仍然有同样的问题。

0 投票
4 回答
69863 浏览

c# - parse and execute JS by C#

i have simple crawler which crawl and search page. but now i have problem how to execute and parse js link from that page. Does anyone have any idea how to parse and execute js page?

example:

  • some_url is simple to parse with webhtmltoolktit
  • JAVASCRIPT:runmeat(1,7,0,2,7,9) is js link which redirect then to some_url2 page and this page i need to crawl then. but problem is how to execute this javascript in C# to get that some_url2 link?
0 投票
1 回答
1026 浏览

java - Java:在应用程序中嵌入脚本引擎:JSR 223 (ScriptEngine) 仍然是一个好的解决方案吗?

我想在我的 Java 应用程序中使用一种或多种脚本语言。

JRuby 网站我发现有 3 种方法:

  1. 使用 Java 6(使用 JSR 223:脚本)
  2. 嵌入 Bean 脚本框架 (BSF)
  3. 直接调用 $YOUR_SCRIPTING_ENGINE$ API

由于我需要支持超过 1 个脚本引擎,我认为选项 3 不够好。

在寻找解决方案 1. JSR 223: Scripting 时,我开始寻找包含所有脚本引擎集成的 zip 存档

但是这个文件在网上无处可寻(项目主页的下载部分是空的。如果我愿意,我可以下载源代码并构建我需要的引擎集成。源代码看起来很旧(我所看到的 2 年以上)

JSR 223 是否仍然存在并且是一个可供选择的好解决方案?如果不是,那么 Bean Scripting Framework 是一个不错的选择吗?最后一个文档页面非常差,只支持少数脚本语言(但它支持我想要的大部分语言)......

0 投票
0 回答
803 浏览

jruby - JRuby 1.6.1- const_missing 错误取决于 factory.getEngineByName("jruby")

在将 JRuby 从 1.5.2 升级到 1.6.1 时,我遇到了一个有趣的问题。整个周末都让我毛骨悚然,直到我把它归结为几行。当 getEngineByName 被调用太多次时,似乎某个地方可能引入了一个错误,导致失败。例如,以下超简单代码在 1.5.2 中有效,但在大约 10-20 次迭代后在 1.6.1 中失败:

#16 之后的 1.6.1 结果:

为了避免这个问题,您需要做的就是将 getEngineByName 移到循环之外:

不幸的是,出于架构原因,这对我的应用程序来说并不容易。我可能必须将单独的 ScriptEngine 实例放在 ThreadLocal 中。不过,不明白为什么这会失败让我担心。

关于为什么我会收到此“NameError:未初始化常量”错误的任何想法?不,我还没有尝试检查源...

0 投票
2 回答
1254 浏览

freemarker - 将 FreeMarker 与 Apache Sling 一起使用

我正在使用下面有 Apache Sling 的内容存储库 (Adobe CQ5)。我想使用 FreeMarker 而不是 JSP 来呈现网页。

为此,我应该将 OSGi Freemarker 扩展上传到 Sling(可在 Sling 源代码的贡献部分中找到),还是应该上传 OSGi 版本的 Freemarker?两个 jar 都实现了接口 javax.script.ScriptEngineFactory 所以我不知道使用哪一个,或者同时上传两者。

0 投票
2 回答
7638 浏览

groovy - How to execute Javascript code from groovy and get the results as a map?

How can I get the results of executed javascript code from groovy? I tried the following, but I always get back the string "world". I would have expected an object or map.

0 投票
2 回答
747 浏览

java - 在 Java ScriptEngine 中使用 Quercus 时如何注册 Quercus 自定义函数?

我在 Apache JMeter 中使用 Quercus 来编写简单的测试脚本。我需要使用 log4j 从 PHP 登录,总的来说这很好用。所以我写了一个这样的 Quercus 模块:

现在,我正在使用以下代码对此进行测试:

公共类 QuercusTest {

}

这会引发异常(如我所料),因为未注册此自定义函数。

但是,我看不到如何使用 Java 脚本引擎注册这个 Quercus 模块。文档有点稀疏......任何帮助将不胜感激。

0 投票
1 回答
1013 浏览

java - 如何使用 JSR 223 保护脚本?

我使用 Groovy 作为动态脚本引擎,以允许我的 Web 应用程序的管理员用户创建小脚本作为界面解决方案的一部分,例如。做简单的字符串操作,tokenize 等等。
不幸的是,这打开了一个很大的漏洞,因为默认情况下脚本引擎会执行任何操作。
我在这里描述了一个演示应用程序:http: //javadude.wordpress.com/2011/06/29/creating-a-zk-groovy-console/

您可以执行System.exit(0)which 关闭 AS 甚至 shell 命令,如"ls -l".execute().text或只是窥探系统设置println InetAddress.localHost.hostAddress

我可以在执行之前进行字符串检查,例如过滤System.xyzexecute.xyz

有什么经验或食谱吗?

谢谢
斯文