javax.script.ScriptException: ReferenceError: "xxx" is not defined in <eval>

20 篇文章 1 订阅

大家好,我是烤鸭:
    今天使用 javax.script.ScriptEngine 遇到一个奇怪的问题,无法识别js方法。

1. 报错内容:

javax.script.ScriptException: ReferenceError: "a" is not defined in <eval> at line number 1057
    at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) ~[nashorn.jar:na]
    at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:392) ~[nashorn.jar:na]
    at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190) ~[nashorn.jar:na]
    at com.mys.my.wechat.utils.aes.JSSecret.getDatas(JSSecret.java:50) ~[classes!/:1.0.0-SNAPSHOT]
    at com.mys.my.wechat.WxMpDemoApplication.main(WxMpDemoApplication.java:26) [classes!/:1.0.0-SNAPSHOT]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [wxChat.jar:1.0.0-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [wxChat.jar:1.0.0-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [wxChat.jar:1.0.0-SNAPSHOT]
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [wxChat.jar:1.0.0-SNAPSHOT]
Caused by: jdk.nashorn.internal.runtime.ECMAException: ReferenceError: "a" is not defined
    at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57) ~[nashorn.jar:na]
    at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319) ~[nashorn.jar:na]
    at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291) ~[nashorn.jar:na]
    at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1442) ~[nashorn.jar:na]
    at jdk.nashorn.internal.scripts.Script$Recompilation$17$41307AAAA$\^eval\_.d(<eval>:1057) ~[na:na]
    at jdk.nashorn.internal.scripts.Script$Recompilation$16$41694A$\^eval\_.myFunc(<eval>:1069) ~[na:na]
    at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639) ~[nashorn.jar:na]
    at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) ~[nashorn.jar:na]
    at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) ~[nashorn.jar:na]
    at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199) ~[nashorn.jar:na]
    at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:386) ~[nashorn.jar:na]
    ... 11 common frames omitted

2. 问题查找
 

不说了, 贴几张图全明白了。下次还是仔细点吧.

服务器上的文件大小,41KB。

本地文件,42 KB.

对比后发现多了一个字符,导致无法识别方法。

 

总结:
   

     其实一开始报错已经指出 1057行代码有问题,找了本地的文件没问题,没注意线上和本地文件有差异。

 

关于如何使用 javax.script.ScriptEngine 使用js 方法,可以参考这篇文章

https://www.cnblogs.com/jifeng/p/8901168.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤鸭的世界我们不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值