rhino

Why java newInstance hang at getDeclaredConstructors0?

孤者浪人 提交于 2020-08-08 06:40:20
问题 We use mozlia rhino to generate dynamic class, then load JsClass by custom classloader like this DynamicClassLoader loader = new DynamicClassLoader(JavaScriptFactory.class.getClassLoader()); Class<?> jsClass = loader.loadClass("D://","com.huawei.xxx"); jsClass.newInstance(); As you see, every JsClass have a seperate classloader, when user modify js, we will also reload JsClass by this code, Now, we face a problem, when call jsClass.newInstance(), some thread hang at getDeclaredConstructors0

白嫖攻略 | 送你五节免费课程!

不打扰是莪最后的温柔 提交于 2020-08-05 11:38:37
说什么学习,免费公开课你又不来? 公开课1 SketchUp技巧 SketchUp2020基础建模公开课 第一节 主讲人 :少校 时间:6月10日 周三 20:00-21:00 费用:完全免费 地点:腾讯课堂 学习链接: https:// ke.qq.com/course/270570 4 扫描↑二维码,即可进入报名 你知道SketchUp为什么会火遍全球? 在公开课中, 少校将带你认识SketchUp 本质, 这将是你“快而精”学会SketchUp的前提; 以及带你玩转SketchUp插件中的使用技巧。 课程要点 涵盖SketchUp认知、基础技巧、插件技巧 以及SketchUp的未来。 公开课2 BIM证书那些事 BIM证书考试公开课 第一节 主讲人 :李香兰 时间:6月9日 周二 20:00-21:00 费用:完全免费 地点:腾讯课堂 学习链接 : https:// ke.qq.com/course/270570 6 扫描↑二维码,即可进入报名 BIM作为建筑圈内的未来新星 不管你想当 土建工程师、机电工程师, 或者桥梁工程师等, 都少不了要跟BIM打交道。 对于BIM证书, 你也许有许多疑问: BIM证书有哪些?我该怎么选择? 可以挂靠吗?考了有什么用? 如果你也有相同的疑问, 那么这门公开课你一定不能错过! 公开课3 写实渲染灯光技术 VRay

用Java(JUnit4)对JavaScript(含Ajax)脚本进行单元测试

僤鯓⒐⒋嵵緔 提交于 2020-04-07 08:40:16
一、背景 因为原来采用过Rhino(JS解析引擎,新版JDK中也默认包含另外一个解析引擎)来在Java环境中解析JavaScript并运行其中的方法。最近看到有人在问题里提问,模拟Ajax请求的问题。所以就想看看有没有方法通过Rhino来实现Ajax请求的模拟。 二、分析 通过上网检索,发现可以采用Envjs,一个纯js方式在无浏览器环境下模拟浏览器的行为,并且与Rhino有集成。这样我就可以实现用Java来处理孤立js中的Ajax请求。 三、开发 1、项目目录结构 main中my.js为要测试的JavaScript,jquery-1.9.1.js为依赖。 test中AjaxTest.java为单元测试类,test.html为测试页面,env.rhino.1.2.js为Envjs依赖。 2、my.js(Jquery的ajax) function myFunction(id) { $.ajax({ url:"/ajaxservice", type:"POST", data:{id:id}, dataType:"json", success:function (msg) { $("#log").text(msg.name); } }); } 这个myFunction实际上就是调用了Jquery的ajax来请求ajaxservice

Java中使用JavaScript脚本

我们两清 提交于 2020-03-30 15:01:39
简介 Nashorn Nashorn 一个 javascript 引擎。 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引擎。Nashorn完全支持ECMAScript 5.1规范以及一些扩展。 它使用基于JSR 292的新语言特性,其中包含在JDK 7中引入的 invokedynamic,将JavaScript编译成Java字节码。 与先前的Rhino实现相比,这带来了2到10倍的性能提升。 使用方式 编写JavaScript脚本 列:JavaScript方法使用Java对象执行方法获取返回值。 function scriptFunction(obj){ var a = 1; var b = 2; return obj.sum(a,b); } scriptFunction(obj);//调用该方法 该脚本变量定义为 String script1; 2. 创建JavaScript容器用户存储脚本 ScirptContainer.java public class ScirptContainer { public static ScriptEngine engine;//脚本引擎 static { ScriptEngineManager manager = new ScriptEngineManager()

How do I rewrite this code for V8 from Rhino?

▼魔方 西西 提交于 2020-03-16 08:08:35
问题 I used to a script on GAS. Because I do manage attendance by Chat and Google spread sheet with GAS. Chat tool is Chat work. It works on Gas(Rhino). But It doesn't work V8. I tried to rewrite line19 for each (var obj in json){ to for (var obj in json){ Please tell me what is bad... Which should I rewrite it? function recordTime(){ /*Sheet setting*/ var wsData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data"); //DataSheetSetting var wsStaff = SpreadsheetApp.getActiveSpreadsheet()

How do I rewrite this code for V8 from Rhino?

倾然丶 夕夏残阳落幕 提交于 2020-03-16 08:08:10
问题 I used to a script on GAS. Because I do manage attendance by Chat and Google spread sheet with GAS. Chat tool is Chat work. It works on Gas(Rhino). But It doesn't work V8. I tried to rewrite line19 for each (var obj in json){ to for (var obj in json){ Please tell me what is bad... Which should I rewrite it? function recordTime(){ /*Sheet setting*/ var wsData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data"); //DataSheetSetting var wsStaff = SpreadsheetApp.getActiveSpreadsheet()

解释封装的匿名函数语法

感情迁移 提交于 2020-02-26 07:03:18
摘要 您能解释JavaScript中封装的匿名函数的语法背后的原因吗? 为什么这样做: (function(){})(); 但这不是: function(){}(); ? 我知道的 在JavaScript中,将创建一个命名函数,如下所示: function twoPlusTwo(){ alert(2 + 2); } twoPlusTwo(); 您还可以创建一个匿名函数并将其分配给变量: var twoPlusTwo = function(){ alert(2 + 2); }; twoPlusTwo(); 您可以通过创建一个匿名函数来封装代码块,然后将其包装在方括号中并立即执行: (function(){ alert(2 + 2); })(); 在创建模块化脚本时,这很有用,以避免因潜在冲突的变量而使当前范围或全局范围混乱(例如Greasemonkey脚本,jQuery插件等)。 现在,我明白了为什么这样做了。 方括号将内容括起来,仅显示结果(我敢肯定有一种更好的描述方式),例如 (2 + 2) === 4 。 我不明白的 但是我不明白为什么这不能同样有效: function(){ alert(2 + 2); }(); 你能跟我解释一下吗? #1楼 即使这是一个古老的问答,它仍然讨论了一个主题,该主题至今仍使许多开发人员陷入困境。

Using Rhino's Javascript parser, how to get the comments?

北城余情 提交于 2020-01-23 01:19:09
问题 I have some javascript files and parse it using Rhino's javascript parser. but I can't get the comments. How can I get the comments? here's a part of my code. run this code, "comment" variable has null. also, while running "astRoot.toSource();", it shows only javascript code. no comment included. it disappeared! [java code] public void parser() { AstRoot astRoot = new Parser().parse(this.jsString, this.uri, 1); List<AstNode> statList = astRoot.getStatements(); for(Iterator<AstNode> iter =

Calling @JSFunction from JavaScript, TypeError: Cannot find default value for object

半城伤御伤魂 提交于 2020-01-22 19:20:10
问题 I'm calling a @JSFunction annotated method of a ScriptableObject The JavaScript file Target = Packages.com.acme.rhino.Target; function evaluate() { var t = Target(); t.addModifier("foobar", 1); return t; } The Java File public class Target extends ScriptableObject { private static final long serialVersionUID = 1L; public List<Modifier> modifiers = new LinkedList<>(); @JSConstructor public Target() { } @JSFunction public void addModifier(final String message, final int value) { modifiers.add

httpclient + javascript

前提是你 提交于 2020-01-16 20:58:03
问题 I am using Apache Httpclient and I need to use a Javascript engine to run the script for the page. Similar to a small web browser. Does anybody know a way to integrate javascript with httpclient and send a request back to the original server? 回答1: Checkout http://htmlunit.sourceforge.net/ 来源: https://stackoverflow.com/questions/5587389/httpclient-javascript