.net 调用Java WebService特殊情况记录

1.非string类型数据无法传递

在工作中遇到过这样一直情况,在调用JAVA的WebService,传递int等变量时,有时会发生数据丢失的情况。此情况并不是所有的非string变量都有出现。

出于好奇,查看了wsdl中是这样对两个变量进行描述的:

<xs:element minOccurs="0" name="type" type="xs:int" />
<xs:element name="type" type="xs:int" />

其中

<xs:element minOccurs="0" name="type" type="xs:int" />无法正常传递值。

<xs:element name="type" type="xs:int" />可以正常传递。

没能看到这里的两个变量在JAVA中是如何定义的,暂不清楚是webService设置的原因还是JAVA中变量定义导致。

通过VS添加webSerivce引用,可以看到<xs:element minOccurs="0" name="type" type="xs:int" />这种类型,会生成如下数据:

(1)@type字段,int

(2)type属性,int

(3)typeSpecified属性,bool

此时如果设置type属性后,没有将typeSpecified设置为true则,传递数据时不会传递type。

所以做webService动态调用时,需要检查是否有对应的【Specified】属性字段,并在需要传输时同步修改此值。

目前还不清楚,如果传递的数据中本身就存在typeSpecified的值的话会怎么样。有研究过的请指教下。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值