首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModelMapper配置错误

ModelMapper配置错误
EN

Stack Overflow用户
提问于 2019-10-09 20:13:58
回答 1查看 313关注 0票数 0

我有一个JSON:

代码语言:javascript
复制
{
    "signatureOptions": {
        "signatureType": "string",
        "digestAlgorithmName": "string",
        "signaturePackagingType": "string",
        "documentType": "string"
       },
    "pdfSignatureOptions": {
        "signatureTextColor": integerValue,
        "signatureTextFontSize": floatValue,
        "fontFamily": "string",
        "fontStyle": "string",
        "signatureImageContent": "string",
        "signatureText": "string",
        "signaturePosX": floatValue,
        "signaturePosY": floatValue,
        "signaturePage": integerValue
       },
       "enableArchive": false,
       "archiverNames": [
        "string"
       ],
    "toSignContent": "String"
}

我创建了以下POJO

代码语言:javascript
复制
@Getter @Setter
public class SignatureOptions {
    private String signatureType;
    private String digestAlgorithmName;
    private String signaturePackagingType;
    private String documentType;

    // constructor
}

@Getter @Setter
public class PdfSignatureOptions {
    private int signatureTextColor;
    private float signatureTextFontSize;
    private String fontFamily;
    private String fontStyle;
    private String signatureImageContent;
    private String signatureText;
    private float signaturePosX;
    private float signaturePosY;
    private int signaturePage;

    // constructor
}

@Getter @Setter
public class DocumentToSignRestRequest {
    private SignatureOptions signatureOptions = new SignatureOptions();
    private PdfSignatureOptions pdfSignatureOptions = new PdfSignatureOptions();
    private boolean enableArchive;
    private ArrayList< Object > archiverNames = new ArrayList <>();
    private String toSignContent;

    // constructor
}

在我的控制器中,我有一个@PostMapping方法,我尝试检索DocumentToSignRestRequest:

代码语言:javascript
复制
@PostMapping(
    value="/sign",
    consumes = { MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE },
    produces = { MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE }
)
public DocumentRest getDocumentSigned(@RequestBody DocumentToSignRestRequest  documentToSignRestRequest) throws Exception {
    // instanciate empty return object
    DocumentRest returnValue = new DocumentRest();

    // Map the documentToSignRestRequest with a DTO Object
    ModelMapper modelMapper = new ModelMapper();
    DocumentDto documentDto = modelMapper.map(documentToSignRestRequest, DocumentDto.class);

    // Call the documentService layer and assign the return to a new DOcumentDto
    DocumentDto signedDocument = documentService.signDocument(documentDto);
    returnValue = modelMapper.map(signedDocument, DocumentRest.class);
    // return a rest object with signedDocument values
    return returnValue;
}

并使用ModelMapper将其传递给DocumentDto类: DocumentDto documentDto = modelMapper.map(documentToSignRestRequest,DocumentDto.class);

这个类的不同属性与组成我要映射的类的不同类具有相同的名称。

代码语言:javascript
复制
@Getter @Setter
public class DocumentDto implements Serializable {

    @Getter(AccessLevel.NONE)
    @Setter(AccessLevel.NONE)
    private static final long serialVersionUID = 6835192601898364280L;

    // document information from DocumentRest
    private String documentName;
    private String documentPath;
    private boolean isDocumentSigned;
    // SignatureOptions values
    private String signatureType;
    private String digestAlgorithmName;
    private String signaturePackagingType;
    private String documentType;
    // PdfSignatureOptionsObject values
    private int signatureTextColor;
    private float signatureTextFontSize;
    private String fontFamily;
    private String fontStyle;
    private String signatureImageContent;
    private String signatureText;
    private float signaturePosX;
    private float signaturePosY;
    private int signaturePage;

    private boolean enableArchive;
    private ArrayList< Object > archiverNames = new ArrayList <>();
    private String toSignContent;
}

当我使用postman时,我得到一条错误消息:

目标属性com.app.ws.certeuropews.shared.dto.DocumentDto.setSignatureType()与多个源属性hierarchies:\n\n\tcom.app.ws.certeuropews.ui.model.request.DocumentToSignRestRequest.getSignatureOptions()/匹配的ModelMapper配置错误:\r\n\r\n1

这个问题的解决方案是什么?我在看ModelMapper指南,我想知道..http://modelmapper.org/examples/projection/#example-1

EN

回答 1

Stack Overflow用户

发布于 2019-10-09 20:39:14

我没有正确设置DTO层:

代码语言:javascript
复制
@Getter
@Setter
public class DocumentDto implements Serializable {

    @Getter(AccessLevel.NONE)
    @Setter(AccessLevel.NONE)
    private static final long serialVersionUID = 6835192601898364280L;

    // document information from DocumentRest
    private String documentName;
    private String documentPath;
    private boolean isDocumentSigned;
    // SignatureOptions values
    private SignatureOptionsDto signatureOptionsDto;
    // PdfSignatureOptionsObject values
    private PdfSignatureOptionsDto pdfSignatureOptionsDto;

    private boolean enableArchive;
    private ArrayList< Object > archiverNames = new ArrayList <>();
    private String toSignContent;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58303906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档