Java AWS Step函数带有Lambda函数输入JSON解析错误

Java AWS Step函数带有Lambda函数输入JSON解析错误,java,json,amazon-web-services,amazon-s3,aws-lambda,Java,Json,Amazon Web Services,Amazon S3,Aws Lambda,我有一个AWSStep函数,它为每个状态调用Lambda函数s,我将PartETag对象的链接列表从一个状态传递到另一个状态,用于多端口加载 不确定是否有帮助,但下面是代码片段: import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import UploadJob; import UploadJobParameters

我有一个AWS
Step函数
,它为每个状态调用
Lambda函数
s,我将
PartETag
对象的
链接列表
从一个状态传递到另一个状态,用于
多端口加载

不确定是否有帮助,但下面是代码片段:

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import UploadJob;
import UploadJobParameters;

public class JobFinishHandler implements RequestHandler<ExportJobParameters, ExportJobParameters> {

    @Override
    public ExportJobParameters handleRequest(ExportJobParameters parameters, Context context) {

        UploadJob uploadJob = new UploadJob(parameters, context);
        context.getLogger().log("JobFinishHandler");
        context.getLogger().log("parameters: " + parameters.toString());
        context.getLogger().log("parameters.getPartETags().size(): " + parameters.getPartETags().size());
        context.getLogger().log(parameters.getPartETags().toString());
        context.getLogger().log("parameters.getPartETags().hashCode(): " + parameters.getPartETags().hashCode());
        uploadJob.continueS3UploadStream();
        uploadJob.jobFinish();
        uploadJob.jobAbort();
        return parameters;
    }

}

我检查了
PartETag
类,以查看是否存在默认构造函数,因此我将重写该类并创建一个默认构造函数。但我觉得既然
PartETag
是亚马逊的一个对象,他们不应该已经想到了这一点吗?我做错了吗?有更好的方法吗

为了防止有人在寻找这个问题的答案,我刚刚创建了一个自定义类,它扩展了
PartETag
,并在完成
多端口加载之前转换了列表:

import com.amazonaws.services.s3.model.PartETag;
import com.amazonaws.util.json.Jackson;

public class PartETagExt extends PartETag {

    public PartETagExt() {
        super(0, "a");
    }

    public PartETagExt(PartETag partETag) {
        super(partETag.getPartNumber(), partETag.getETag());
    }

    @Override
    public String toString() {
        return Jackson.toJsonString(this);
    }
}
然后将列表转换为常规的
PartETag

List<PartETag> partETags = new LinkedList<PartETag>();
partETags.addAll(partETagExts);
CompleteMultipartUploadRequest compRequest = 
                new CompleteMultipartUploadRequest(bucket, key, uploadId, partETags);
List partETags=newlinkedlist();
partETags.addAll(partETagExts);
CompleteMultipartUploadRequestCompRequest=
新的CompleteMultipartUploadRequest(bucket、key、uploadId、parteTag);

是否要添加多个步骤来处理多部分上传?共享代码片段。@ConfusedCoder是的,这是一个step函数,它会一直上载多端口加载的部分内容,直到完成为止。即使在调用lambda和step函数解析输入之前,也会引发此错误。我仍然会分享代码以防万一。
List<PartETag> partETags = new LinkedList<PartETag>();
partETags.addAll(partETagExts);
CompleteMultipartUploadRequest compRequest = 
                new CompleteMultipartUploadRequest(bucket, key, uploadId, partETags);