Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AWS Lambda反序列化程序/LinkedHashmap无法强制转换_Java_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Java AWS Lambda反序列化程序/LinkedHashmap无法强制转换

Java AWS Lambda反序列化程序/LinkedHashmap无法强制转换,java,aws-lambda,aws-api-gateway,Java,Aws Lambda,Aws Api Gateway,我不熟悉Java/AWS等,AWS lambda我们没有反序列化我认为是一个微不足道的例子 API网关日志,将JSON发送到我的lambda: 请求测试请求的执行日志 2017年9月11日星期一18:04:06 UTC:开始执行请求:测试调用请求 2017年9月11日星期一18:04:06 UTC:HTTP方法:POST,资源路径:/ 2017年9月11日星期一18:04:06 UTC:方法请求路径:{} 2017年9月11日星期一18:04:06 UTC:方法请求查询字符串:{} 2017年9

我不熟悉Java/AWS等,AWS lambda我们没有反序列化我认为是一个微不足道的例子

API网关日志,将JSON发送到我的lambda:

请求测试请求的执行日志 2017年9月11日星期一18:04:06 UTC:开始执行请求:测试调用请求 2017年9月11日星期一18:04:06 UTC:HTTP方法:POST,资源路径:/ 2017年9月11日星期一18:04:06 UTC:方法请求路径:{} 2017年9月11日星期一18:04:06 UTC:方法请求查询字符串:{} 2017年9月11日星期一18:04:06 UTC:方法请求头:{Content Type=application/json} 2017年9月11日星期一18:04:06 UTC:转换前的方法请求正文:{“输入”:“richard在这里”} 2017年9月11日星期一18:04:06 UTC:端点请求URI: 2017年9月11日星期一18:04:06 UTC:端点请求标题:{x-amzn-lambda-integration-tag=测试请求,授权=****************************************************************************************************************************************************************************************************************************************************************************************************************************************8acc24,X-Amz-Date=20170911T180406Z,X-amzn-APIGATHEWAY-api-id=8fjgcr51va,X-Amz-Source-Arn=Arn:aws:execute api:us-west-2:00337439906:8fjgcr51va/null/POST/,Accept=application/json,用户代理=Amazonapigateway258FJGCR51VA,X-Amz-Security-Token=XXXXXXXXXX/////WEADM3BRDJBUGGR3AVM3AYBW9TZYWWWKWWW9MJTDDZAW3U32ASJ4QVNTUSRPJFSIHLWADS74xHZHBi7GZxMuv3ZQYCIIYRx0ZL1S524J7MetGfN4OreGlN7CCES3WR417UAPB4XLH6E0V71SRPG4A1kg7KB6426GN9CVXR0MYBWPL9QTP9BOVLGIOVNJYBx5J7QD7QD7FA7U7WqQQQQQF7W7W7W7WQQQF7W7W7F7W7W7WQQF7W7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F 2017年9月11日星期一18:04:06 UTC:转换后的端点请求正文:{“输入”:“richard在这里”} 2017年9月11日星期一18:04:06 UTC:向发送请求 2017年9月11日星期一18:04:06 UTC:收到响应。集成延迟:73毫秒 2017年9月11日星期一18:04:06 UTC:Endpoint response body before transformations:{“errorMessage”:“java.util.LinkedHashMap不能强制转换为com.morethanheriod.uppercase.domain.UppercaseRequest”,“errorType:“java.lang.ClassCastException”,“stackTrace:[“com.morethanherior.uppercase.uppercase.UppercaseFunction.apply(UppercaseFunction.java:13)”,“org.springframework.cloud.function.support.FluxFunction.lambda$apply$0(FluxFunction.java:42)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.onNext(fluxmapfusable.java:107)”、“reactor.core.publisher.FluxJust$WeakScalarSubscription.request(FluxJust.java:90)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.request”(fluxmapfusable.java:159)、“reactor.core.publisher.BlockingIterable$SubscriberIterator.onSubscribe(BlockingIterable.java:214)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.onSubscribe(fluxmapfusable.java:90)”、“reactor.core.publisher.FluxJust.subscribe(FluxJust.java:67)”、“reactor.core.publisher.fluxmapfusable.subscribe(fluxmapfusable.java:63)“,”reactor.core.pu[截断] 2017年9月11日星期一18:04:06 UTC:端点响应标题:{x-amzn-Remapped-Content-Length=0,x-amzn-RequestId=9a0ca35b-971b-11e7-b0d0-653f3fe89968,连接=保持活动,内容长度=1557,x-Amz-Function-Error=Unhandled,日期=2017年9月11日周一18:04:05 GMT,x-amzn-Trace-Id=root=1-59b6d016-3AAE0E3274A3E84E45BF13;抽样=0,内容类型=application/json} 2017年9月11日星期一18:04:06 UTC:转换后的方法响应正文:{“errorMessage”:“java.util.LinkedHashMap不能转换为com.morethanheriod.uppercase.domain.UppercaseRequest”,“errorType”:“java.lang.ClassCastException”,“stackTrace”:[“com.morethanheriod.uppercase.uppercase.UppercaseFunction.apply(UppercaseFunction.java:13)”,“org.springframework.cloud.function.support.FluxFunction.lambda$apply$0(FluxFunction.java:42)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.onNext(fluxmapfusable.java:107)”、“reactor.core.publisher.FluxJust$WeakScalarSubscription.request(FluxJust.java:90)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.request”(fluxmapfusable.java:159)、“reactor.core.publisher.BlockingIterable$SubscriberIterator.onSubscribe(BlockingIterable.java:214)”、“reactor.core.publisher.fluxmapfusable$MapFuseableSubscriber.onSubscribe(fluxmapfusable.java:90)”、“reactor.core.publisher.FluxJust.subscribe(FluxJust.java:67)”、“reactor.core.publisher.fluxmapfusable.subscribe(fluxmapfusable.java:63)“,”reactor.core.publi[截断] 2017年9月11日星期一18:04:06 UTC:方法响应标题:{X-Amzn-Trace-Id=sampled=0;root=1-59b6d016-3A1AEE0E3274A3E84E451BF13,内容类型=应用程序/json} 2017年9月11日星期一18:04:06 UTC:成功完成执行 2017年9月11日星期一18:04:06 UTC:方法已完成,状态:200

我使用这个JSON来提供要反序列化到以下POJO的数据

 {"input":"richard was here"} 



public class UppercaseRequest {

    private String input;

    public String getInput() {
        return input;
    }

    public void setInput(final String input) {
        this.input = input;
    }
}
这是处理程序

public class UppercaseFunctionHandler extends SpringBootRequestHandler<UppercaseRequest, UppercaseResponse> {
}
公共类UppercaseFunctionHandler扩展了SpringBootRequestHandler{
}
注:取自

示例中没有记录它-但我使用的Lambda入口点是:

com.morethanheriod.uppercase.handler.aws.UppercaseFunctionHandler::HandlerRequest


如果我以正确的方式指定处理程序(在本例中是
com.morethanheriod.uppercase.handler.aws.UppercaseFunctionHandler
),它对我有效:

我认为错误在于AWS控制台中的处理程序声明。您必须放置类的FQN(不是方法引用)。该方法没有泛型类型信息,除非您重写它(您说它也可以,但不必要)

OP制作了一个自己部署和测试函数()的屏幕广播,除了处理程序名之外,这个函数几乎都是完美的


如果其他人想尝试,代码在这里:。

如果这是JSON,这是目标,那么AWS知道h
{
  "result": "FOO"
}