java - 与 Alexa 的意外通信问题

标签 java amazon-web-services aws-lambda alexa-skills-kit alexa-skill

我将 Alexa 技能创建为 AWS Lambda Java 应用程序,并使用 Alexa 技能套件中提供的 HelloWorld 示例。我按照亚马逊网站上给出的所有步骤进行操作,包括此处给出的所有步骤 Alexa not finding my Skill 。由于 Amazon 目前没有完全给出使用 Lambda 和 java 的说明,因此我按照本教程 https://github.com/jjaquinta/EchoProofOfConcepts/tree/master/jo.echo.lambda 中给出的步骤进行操作。我在亚马逊论坛页面上找到的。当我在 Lambda 中运行代码时,它接受它,但仅将其显示为执行结果:

{
"version": "1.0",
"sessionAttributes": {}
}

并获取 Alexa 启动 session 请求的以下日志输出:

START RequestId: 1e8a753b-37a5-11e5-bad6-6df6c6d7bdc9
SpeechletLambda init
warn:No timestamp tolerance has been configured, disabling timestamp verification
SpeechletLambda done init
Handling request
0 [main] WARN com.amazon.speech.speechlet.authentication.ApplicationIdVerifier  - Application ID verification has been disabled, allowing request for application ID amzn1.echo-sdk-ams.app.[unique-value-here]
warn:Timestamp verification has been disabled, allowing request request5678 with timestamp null
error:Exception occurred in speechlet 
java.lang.NullPointerException
jo.echo.lambda.utils.SpeechletLambda.handleRequest(SpeechletLambda.java:119)
hello.HelloWorldLambda.handleRequest(HelloWorldLambda.java:38)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
lambdainternal.EventHandlerLoader$StreamMethodRequestHandler.handleRequest(EventHandlerLoader.java:494)
lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:832)
lambdainternal.AWSLambda.startRuntime(AWSLambda.java:223)
lambdainternal.AWSLambda.<clinit>(AWSLambda.java:56)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:93)
END RequestId: 1e8a753b-37a5-11e5-bad6-6df6c6d7bdc9
REPORT RequestId: 1e8a753b-37a5-11e5-bad6-6df6c6d7bdc9  Duration: 2231.45 ms        
Billed Duration: 2300 ms    Memory Size: 512 MB    Max Memory Used: 78 MB

当我尝试使用 echo 技能时,出现“意外通信问题”:请求标识符:amzn1.echo-api.request.173c5d6c-8e97-493c-9efd-beb88cffd82f 与请求的应用程序通信时出现问题。

有人遇到同样的问题吗?我想这可能与我的 zipper 包装有关,所以有人知道正确的包装方法吗?

这是我用于 HelloWorld https://docs.google.com/document/d/1DU_-kAOxnhEp_4Lsj6I_LzEN4Di6-4Gmk28OZgc80IA/pub 的代码

最佳答案

你先解决了空指针异常了吗?抱歉,如果您有的话,我正在陈述显而易见的事情。您可以记录请求信封上传入的数据吗?

关于java - 与 Alexa 的意外通信问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641765/

相关文章:

java - 缓解 Logjam/weakdh.org 的正确 JBoss EAP 6.0.1 密码套件配置是什么?

java - 加密应用程序数据的正确方法

java - 某些函数文本在 netbeans ide 上显示为横线

amazon-web-services - 如何将Elasticsearch数据迁移到AWS Elasticsearch域?

amazon-web-services - 如何将数据从自定义授权方发送到 api 端点

java - 即使在 Eclipse 中执行 Maven 更新后也无法导入依赖项

Java servlet 和服务器发送的事件

hadoop - 将数据加载到 HIVE 中的问题

python-3.x - 以编程方式与 AWS SSO 建立 boto3 session

amazon-web-services - 私有(private)链接是否适用于 lambda 函数?