为了账号安全,请及时绑定邮箱和手机立即绑定

Apache 轴 1.3 - wsdl 中具有相同名称的元素

Apache 轴 1.3 - wsdl 中具有相同名称的元素

喵喵时光机 2023-05-24 15:12:25
我在 wsdl 文件中有一个包含以下元素的 SOAP 服务。(第一个以小写字母“i”开头,第二个以大写字母“I”开头)字段 1<element minOccurs="0" name="inventoryOrganization" nillable="true" type="xsd:string"/>字段 2<element minOccurs="0" name="InventoryOrganization" nillable="true" type="tns2:ReceiptOfGoods_InventoryOrganization"/>当我从这个 .wsdl 创建存根时,在我的存根文件中private java.lang.String inventoryOrganization;private com.app.system.webservices.dataimport.generated.gr.service.data.ReceiptOfGoods_InventoryOrganization inventoryOrganization2;生成的 XML 字段如下<ns1:inventoryOrganization2 invalid="false">    <ns1:guid>SAMPLE-ID</ns1:guid>    <ns1:code>100001</ns1:code></ns1:inventoryOrganization2><ns1:InventoryOrganization xsi:type="xsd:string">SAMPLE-ID</ns1:InventoryOrganization>我应该在生成的存根中做些什么更改才能与此服务通信。我希望经过更多研究后,自定义序列化器将是答案。
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

问题是,在生成的类中,字段被映射为


typeDesc.addFieldDesc(elemField);

elemField = new org.apache.axis.description.ElementDesc();

elemField.setFieldName("inventoryOrganization");

elemField.setXmlName(new javax.xml.namespace.QName("http://url/data", "InventoryOrganization"));

elemField.setXmlType(new javax.xml.namespace.QName("http://url/data", "ReceiptOfGoods_InventoryOrganization"));

elemField.setMinOccurs(0);

elemField.setNillable(true);

它必须改为


typeDesc.addFieldDesc(elemField);

elemField = new org.apache.axis.description.ElementDesc();

elemField.setFieldName("inventoryOrganization2");

elemField.setXmlName(new javax.xml.namespace.QName("http://url/data", "InventoryOrganization"));

elemField.setXmlType(new javax.xml.namespace.QName("http://url/data", "ReceiptOfGoods_InventoryOrganization"));

elemField.setMinOccurs(0);

elemField.setNillable(true);

在自动生成的存根中,它被映射为elemField.setFieldName("inventoryOrganization");, 而不是elemField.setFieldName("inventoryOrganization2");


查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信