我已经创建了一个从版权元素到WSDL字段的映射。地图制作得很成功。但是,在本地运行映射时,我得到了映射的两个不同操作的两个错误中的任何一个:
1)对于第一个映射:“输入有效但未知的数据”,在跟踪日志中,我要得到:输入1存在(3012字节),但没有内容。
更详细的错误信息:(级别0:偏移量0,len 0,0的comp 1,#1,DI 000000000001:)偏移量0的数据( X'0004‘的’
输入1存在(3012字节),但没有内容。
输入卡1的验证消息结束。
(偏移量26130:地图编号0 (CobolFuncData),DI 000000000000:)类型X'0148‘(COBOL_OBJECT Group CopyBook)已经生成。
(偏移量26130:映射号0 (CobolFuncData),DI 000000000000:)类型X'0124‘(000_COBOL_OPERATION Record CopyBook)已经生成。
成功地构建了输出1。
2)对于第二个映射:‘多个输入中有一个无效’,并且在跟踪日志中我得到:输入1存在,但它的类型是错误的。
对于case2,我得到了:(级别3:偏移量0,len 0,comp 1 of 2,#1,DI 000000000001:)偏移量0的数据(类型为X'0008‘的’xmlns‘(前缀为XMLS WSDLService)。
我认为问题不在于WSDL类型树与COBOL类型树的映射,而在于我在本地运行这些映射时使用的XML请求和响应数据。在WTX中,是否有任何准则可用于创建正确的输入并在本地成功运行映射。
PS。我使用通过导入WSDL而不是XSD来创建类型树。导入WSDL时,我不会在类型树中获取节点'DOC‘。在这种情况下,我应该使用什么类型树级别来创建我的地图。我尝试过WSDLService ->类型-> ~ Type have -> TypeDef和WSDLService ->类型-> ~ Type have -> Seq
发布于 2014-03-25 00:08:57
我自己发现了这个问题的一个原因。原因是请求XML与我在转换映射中使用的类型树级别不匹配。如果您使用的是WSDL而不是XSD (而且“DOC XSD”没有出现在您的WSDL/XSD类型树中),那么执行此映射的更好方法是将输入卡的类型用作来自WSDL的操作的“输入”(例如: input yourOperationName Operation yourWSDLService)。
作为一项规则,最重要的是充分理解WSDL和WSDL操作以及XSD结构,以便为转换创建映射。
https://stackoverflow.com/questions/22598768
复制相似问题