`
daodan988
  • 浏览: 31440 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C#客户端调用Axis2 Java webservice int参数传值问题

 
阅读更多
现象:
采用C# webservice studio工具调试axis2生成的java webservice服务,如果java端的接口中的参数类型为int,则通过该工具调试会报错,调用不了java端方法。

解决方法:
1.VS2005封装WebService引用时,如果WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。而"属性名Specified"是一个bool类型,只有这个属性被设置成true时,"属性××"的值才会被序列化成xml传递。

同样的道理,用.NET提供WebService给JAVA调用时,如果是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成两个属性,一般是这样的"属性××"、"属性××Specified"。如果不将“属性××Specified”设置为true的话,服务端得到的数据将是null。解决办法就是把“属性××Specified”设置为true或者把“属性××Specified”删掉。
2.将int类型参数改为string类型。

参考资料:

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 中的默认/固定值。

否则,该属性不出现在文档的结构模型中。
分享到:
评论

相关推荐

    调用 java webservice 的问题

    调用Java WebService的问题在IT领域中颇为常见,尤其是在跨平台、跨语言的环境中,如C#调用Java WebService。以下将详细解析这一过程中的关键知识点,包括WebService的架构原理、工具选择(如Axis2)、数据类型转换...

    axis2使用方法-java+webservice

    下面主要介绍使用 Axis2 开发一个不需要任何配置文件的 WebService,并在客户端使用 Java 和 C# 调用这个 WebService。 Axis2 下载和安装 Axis2 的下载和安装可以从 Apache 官方网站下载最新版本的 Axis2,下载...

    java程序调用.net/c#的webservice

    Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...

    axis2 webservice基础教程

    #### 五、使用C#调用WebService - **原理概述**:与Java类似,C#也可以通过解析WSDL文档生成代理类的方式调用WebService。 - **示例步骤**: 1. 使用Visual Studio中的“添加Web引用”功能导入WebService的WSDL。 ...

    WebService大讲堂之Axis2.pdf

    调用Axis2发布的WebService可以采用多种编程语言,包括Java和C#。使用Java时,可以直接调用或通过`wsdl2java`工具自动生成客户端代码,简化开发过程。而在C#中,通常使用Visual Studio的“添加Web引用”功能来生成...

    WebService大讲堂之Axis2(2):复合类型数据的传递.pdf

    通过 Axis2,开发者可以直接使用 Java 类型作为 WebService 方法的参数和返回值,简化了开发过程。同时,还介绍了如何利用序列化和反序列化技术处理对象实例的传输,使得复杂数据结构能够在 WebService 中得以传递。...

    WebService_Axis2_经典教程

    本教程通过实例介绍如何在无需任何配置文件的情况下,利用Java POJO(Plain Old Java Object)快速创建和发布Web服务,并展示如何在客户端使用Java和C#进行调用。 首先,要开始学习 Axis2,你需要从官方网站...

    Axis2从入门到精通--Webservice在eclipse下开发教程

    本教程将逐步指导你如何利用Axis2在Eclipse环境中创建、部署和调用一个无需任何配置文件的Web服务,并展示如何在Java和C#客户端中使用这些服务。 首先,了解Axis2的基本特性: 1. **支持多种协议**:Axis2不仅支持...

    webservice2 符合数据类型

    在Axis2中,可以直接使用Java的数组或自定义类(接口)作为WebService方法的参数或返回值。对于数组,注意只能声明一维数组,但可以通过分隔符来表示多维数组,例如上面的代码示例就是一个模拟的3x3二维字符串数组。...

Global site tag (gtag.js) - Google Analytics