我正在围绕外部服务 docusign 创建一个包装器。我正在尝试使用推土机将我的包装服务对象映射到 docusign 对象。我正在尝试做一个深拷贝。
在大多数情况下,我试图保留源名称和目标名称 - 但推土机不会复制超过第一级。在下面的示例中,我有 - 转换后,我看到 CompositeTemplates 节点从未从源复制到目标。可能是因为 - 它里面有一个列表?!我不知道。
我的推土机映射是:
<mapping map-null="false"> <class-a>com.foo.wrapper.CreateEnvelopeFromTemplatesAndForms</class-a> <class-b>com.foo.docusign.CreateEnvelopeFromTemplatesAndForms</class-b> </mapping>
然后我尝试在映射文件中指定字段名称 - 但我得到空指针异常。对此的任何指示表示赞赏。
<mapping map-null="false"> <class-a>com.foo.wrapper.CreateEnvelopeFromTemplatesAndForms</class-a> <class-b>com.foo.docusign.CreateEnvelopeFromTemplatesAndForms</class-b> <field> <a>ArrayOfCompositeTemplate</a> <b>CompositeTemplate</b> </field>
资源:
<doc:initiateESign> <InitiateEsignProcessRequest> <doc:createEnvelopeFromTemplatesAndForms> <doc:envelopeInformation> <doc:subject></doc:subject> </doc:envelopeInformation> <doc:compositeTemplates> <!--Zero or more repetitions:--> <doc:ArrayOfCompositeTemplate> <doc:inlineTemplates> <!--Zero or more repetitions:--> <doc:inlineTemplate> <doc:envelope> <doc:transactionID></doc:transactionID> <doc:asynchronous></doc:asynchronous> <doc:recipients> <!--Zero or more repetitions:--> <doc:recipient> <doc:id></doc:id> </doc:recipient> </doc:recipients> </doc:envelope> </doc:inlineTemplate> </doc:inlineTemplates> <doc:document> <doc:name></doc:name> </doc:document> </doc:ArrayOfCompositeTemplate> </doc:compositeTemplates> <doc:activateEnvelope></doc:activateEnvelope> </doc:createEnvelopeFromTemplatesAndForms> </InitiateEsignProcessRequest> </doc:initiateESign>
目标:
<ns:CreateEnvelopeFromTemplatesAndForms> <ns:EnvelopeInformation> <ns:Subject></ns:Subject> </ns:EnvelopeInformation> <ns:CompositeTemplates> <!--Zero or more repetitions:--> <ns:CompositeTemplate> <ns:InlineTemplates> <!--Zero or more repetitions:--> <ns:InlineTemplate> <ns:Envelope> <ns:TransactionID></ns:TransactionID> <ns:Recipients> <!--Zero or more repetitions:--> <ns:Recipient> <ns:ID></ns:ID> </ns:Recipient> </ns:Recipients> </ns:Envelope> </ns:InlineTemplate> </ns:InlineTemplates> <ns:Document> <ns:Name></ns:Name> </ns:Document> </ns:CompositeTemplate> </ns:CompositeTemplates> <ns:ActivateEnvelope></ns:ActivateEnvelope> </ns:CreateEnvelopeFromTemplatesAndForms>
任何关于如何通过推土机映射这两个的指针都会非常有帮助。