从 IBM Workilght Server 获取错误 [它不是函数,它是“对象”。]
Posted
技术标签:
【中文标题】从 IBM Workilght Server 获取错误 [它不是函数,它是“对象”。]【英文标题】:Getting Error from IBM Workilght Server [It is not a function, it is \"object\".] 【发布时间】:2017-09-19 05:46:27 【问题描述】:使用 IBM Worklight 版本 6.1.0.02-20160314-1430
参考以下链接在适配器上实施了 AES。 https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.1/server-side-development/javascript-adapters/using-java-adapters/
它在我的本地服务器中的 Eclipse 中正常工作。为服务器生成的战争文件和相同的给定部署。当我尝试访问低于错误响应时,从服务器。
以下内容经过交叉检查。
从服务器收集战争文件,交叉检查类文件及其存在
部署war文件后重启服务器
我无法确定错误在哪里。
来自服务器的错误响应:
"status": 200,
"invocationContext": null,
"errorCode": "PROCEDURE_ERROR",
"errorMsg": "Procedureinvocationerror.EcmaError: TypeError: Cannotcallpropertyencryptinobject[ JavaPackagecom.winjit.EncryptionDecryption ].Itisnotafunction, itis\"object\". (API_Adapter-impl.js#7)",
"invocationResult":
"isSuccessful": false,
"warnings": [
],
"errors": [
"Ecma Error: TypeError: Cannot call property encrypt in object [JavaPackage com.winjit.EncryptionDecryption]. It is not a function, it is \"object\". (API_Adapter-impl.js#7)"
],
"responseID": "3161",
"info": [
]
【问题讨论】:
如果您的服务器正在运行一个 JDK 版本并且适配器中的 Java 代码是在另一个版本中开发的,则可能会发生这种情况。你能验证一下吗? 【参考方案1】:将您的 JDK 更新到 1.8
在 /jre/lib/security
处添加两个安全策略 JAR 文件-
local_policy.jar
US_export_policy.jar
【讨论】:
【参考方案2】:此错误是由于开发服务器(Eclipse)和服务器(Web sphere)的 JDK 不匹配造成的。服务器在 JDK 1.6 上运行。我降级了我的 Eclipse 的 Java 版本。步骤如下(在mac上)。
-
Eclipse -> 首选项 -> Java -> 编译器
选择编译器合规性杠杆 -> 1.6
Eclipse -> 首选项 -> Java ->已安装的 JRE
添加 JDK 1.6 位置(/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)
申请成功
重建项目(必要时重启服务器)
将war文件部署到重新生成bin文件夹的服务器
它现在按预期为我工作
【讨论】:
以上是关于从 IBM Workilght Server 获取错误 [它不是函数,它是“对象”。]的主要内容,如果未能解决你的问题,请参考以下文章