用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!
2015-11-04 09:33
302 查看
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型、double和DateTime类型的值(在服务端得到的均为null) 解决办法: VS2005封装WebService引用
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型、double和DateTime类型的值(在服务端得到的均为null)
解决办法:
VS2005封装WebService引用时,如果WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。而"属性名Specified"是一个bool类型,只有这个属性被设置成true时,"属性××"的值才会被序列化成xml传递。
同样的道理,用.NET提供WebService给JAVA调用时,如果是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。如果不将“属性××Specified”设置为true的话,服务端得到的数据将是null。解决办法就是把“属性××Specified”设置为true或者把“属性××Specified”删掉。
资料:http://msdn.microsoft.com/zh-cn/library/system.xml.xmlattribute.specified(VS.80).aspx
.NET Framework 类库
XmlAttribute.Specified 属性
获取一个值,该值指示是否显式设置了属性值。
命名空间:System.Xml
程序集:System.Xml(在 system.xml.dll 中)
属性值
如果在原始实例文档中显式地为该属性给定一个值,则为 true;否则为 false。false 值指示该属性的值来自 DTD。
备注
该属性是由实现负责的,而不是用户。如果用户更改该属性的值(即使它最后与默认/固定值具有相同的值),Specified 标志就会自动转为 true。若要重新将该属性指定为 DTD 中的默认/固定值,则用户必须删除该属性。然后,实现提供一个新属性,其 Specified 设置为 false,并具有默认/固定值(如果存在的话)。
摘要:
如果属性具有文档中的分配值,则 Specified 为 true,并且该值是分配值。
如果属性没有文档中的分配值,而具有 DTD 中的默认/固定值,则 Specified 为 false,该值是 DTD 中的默认/固定值。
否则,该属性不出现在文档的结构模型中
用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型、double和DateTime类型的值(在服务端得到的均为null)
解决办法:
VS2005封装WebService引用时,如果WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。而"属性名Specified"是一个bool类型,只有这个属性被设置成true时,"属性××"的值才会被序列化成xml传递。
同样的道理,用.NET提供WebService给JAVA调用时,如果是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。如果不将“属性××Specified”设置为true的话,服务端得到的数据将是null。解决办法就是把“属性××Specified”设置为true或者把“属性××Specified”删掉。
资料:http://msdn.microsoft.com/zh-cn/library/system.xml.xmlattribute.specified(VS.80).aspx
.NET Framework 类库
XmlAttribute.Specified 属性
获取一个值,该值指示是否显式设置了属性值。
命名空间:System.Xml
程序集:System.Xml(在 system.xml.dll 中)
属性值
如果在原始实例文档中显式地为该属性给定一个值,则为 true;否则为 false。false 值指示该属性的值来自 DTD。
备注
该属性是由实现负责的,而不是用户。如果用户更改该属性的值(即使它最后与默认/固定值具有相同的值),Specified 标志就会自动转为 true。若要重新将该属性指定为 DTD 中的默认/固定值,则用户必须删除该属性。然后,实现提供一个新属性,其 Specified 设置为 false,并具有默认/固定值(如果存在的话)。
摘要:
如果属性具有文档中的分配值,则 Specified 为 true,并且该值是分配值。
如果属性没有文档中的分配值,而具有 DTD 中的默认/固定值,则 Specified 为 false,该值是 DTD 中的默认/固定值。
否则,该属性不出现在文档的结构模型中
相关文章推荐
- spring,mybatis,atomikos多数据源的整合
- Java NIO通信框架: Netty
- java中的Runtime类和Process类
- 控制台的8位信息位的海明校验码
- eclipse maven 刷新报错
- Eclipse常用快捷键
- java 10 进制 转换为 2 进制, 利用递归
- java正则表达式基础
- 从”JAVA“而终 8:java循环判断语句讲解
- 编译器指令重排序 和 Java 内存模型
- SpringMVC和Struts2比较
- java代理 InvocationHandler接口实现
- Java中的静态方法调用静态成员变量
- 利用javaMail发送邮件
- 从JVM分析Java的类的加载和卸载机制
- java发送电子邮件email
- java学习笔记(三)—数组
- 离线使用tycho对eclipse RCP打包导出
- eclipse RCP界面从3.x切换到e4
- eclipse进度条从后台还原到前台