【问题标题】:Getting Error from IBM Workilght Server [It is not a function, it is \"object\".]从 IBM Workilght Server 获取错误 [它不是函数,它是“对象”。]
【发布时间】: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 中正常工作。为服务器生成的战争文件和相同的给定部署。当我尝试访问低于错误响应时,从服务器。

以下内容经过交叉检查。

  1. 从服务器收集战争文件,交叉检查类文件及其存在

  2. 部署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 代码是在另一个版本中开发的,则可能会发生这种情况。你能验证一下吗?

标签: worklight-adapters worklight-server worklight-studio worklight-runtime


【解决方案1】:

将您的 JDK 更新到 1.8

/jre/lib/security

处添加两个安全策略 JAR 文件
  1. local_policy.jar
  2. US_export_policy.jar

【讨论】:

    【解决方案2】:

    此错误是由于开发服务器(Eclipse)和服务器(Web sphere)的 JDK 不匹配造成的。服务器在 JDK 1.6 上运行。我降级了我的 Eclipse 的 Java 版本。步骤如下(在mac上)。

    1. Eclipse -> 首选项 -> Java -> 编译器
    2. 选择编译器合规性杠杆 -> 1.6
    3. Eclipse -> 首选项 -> Java ->已安装的 JRE
    4. 添加 JDK 1.6 位置(/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)
    5. 申请成功
    6. 重建项目(必要时重启服务器)
    7. 将war文件部署到重新生成bin文件夹的服务器

    它现在按预期为我工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      相关资源
      最近更新 更多