0

使用 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": [

    ]
  }
}
4

2 回答 2

0

将 JDK 更新到 1.8

在/jre/lib/security中添加两个安全策略 JAR 文件

  1. local_policy.jar
  2. US_export_policy.jar
于 2017-09-19T06:16:46.157 回答
0

由于开发服务器(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文件夹的服务器

它现在按预期为我工作

于 2017-09-23T04:47:58.723 回答