`
lxy19791111
  • 浏览: 480865 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

.Net(C#) 调用 java webservice 的问题[转载]

阅读更多

C# 调用 java webservice 的问题

Technorati 标记: c#, java, axis2, webservice

前一段时间一直被一个 c#调用 Java web service的问题困扰。

http://www.cnitblog.com/reene/archive/2007/06/29/29217.html

在网上一直找不到答案,后来在国外的一个论坛上有人提醒可能是命名空间的原因,摸索以后终于顺利解决这个问题。特别把它记下以后方便。

问题:

如果用c#调用java 的 webservice 时,发现调用返回值为基本类型(如 xsd:string xsd:int)的服务能过正常返回,而调用返回复杂类型如自定义对象时却返回 null,同时抓包发现服务器段明明已经正常答复soap消息。 就需要考虑命名空间的问题。

在我碰到的问题中,由于我把用来返回结果的bean 单独放到一个 xxx.xxx.bean 包中,而把webservice 的文件放在 xxx.xxx.service包中,在用wtp生成 webservice 服务时就把它们放到不同的命名空间中去了。

解决方案:

把用来的bean文件放置到与service同一个package中,这样用wtp lomboz之类工具生成时就直接会在一个命名空间中。

--本人备忘

最近在一个项目中,就遇到了这个问题,此文对我帮助很大,先谢谢这会兄弟了。另附一小段代码,备忘一下:

Java端的webservice中saveUser(JafUser user)方法中的JafUser类代码如下:

java 代码
  1. /**  
  2.  *   
  3.  * @author lixy 2006-12-14 10:16:04  
  4.  *  
  5.  */  
  6. public class JafUser  implements java.io.Serializable {   
  7.   
  8.   
  9.     // Fields       
  10.   
  11.      private String userId;   
  12.      private String userName;   
  13.      private Integer regionId;   
  14.         
  15.     // Constructors   
  16.   
  17.     /** default constructor */  
  18.     public JafUser() {   
  19.     }   
  20.   
  21.     public Integer getRegionId() {   
  22.         return regionId;   
  23.     }   
  24.   
  25.     public void setRegionId(Integer regionId) {   
  26.         this.regionId = regionId;   
  27.     }   
  28.   
  29.     public String getUserId() {   
  30.         return userId;   
  31.     }   
  32.   
  33.     public void setUserId(String userId) {   
  34.         this.userId = userId;   
  35.     }   
  36.   
  37.     public String getUserName() {   
  38.         return userName;   
  39.     }   
  40.   
  41.     public void setUserName(String userName) {   
  42.         this.userName = userName;   
  43.     }   
  44.   
  45.     public String toString() {   
  46.         StringBuffer sb = new StringBuffer("[ ");   
  47.         sb.append("userId = "+this.userId).append(",");   
  48.         sb.append("userName = "+this.userName).append(",");   
  49.         sb.append("regionId = "+this.regionId).append(" ]");   
  50.         return sb.toString();   
  51.     }   
  52. }  
客户端c# 代码:
  1. ConsoleApplication1.com.lixy.ws.UserServiceEx manager = new ConsoleApplication1.com.lixy.ws.UserServiceEx();   
  2. JafUser user = new JafUser();   
  3. user.userId = "lixy01";   
  4. user.userName = "lixiangyang01";   
  5. user.regionId = 4301;   
  6. user.regionIdSpecified = true;   
  7. String result = manager.saveUser(user);   
  8. Console.WriteLine("Result = " + result);   
  9. Console.ReadLine();   

regionIdSpecified 虽然不是JafUser对象()中的属性,但是在测试程序时,发现只有将user.regionIdSpecified设为 true,regionId才被发送到webservice端。望...
 

分享到:
评论
2 楼 xusaomaiss 2007-10-23  
我也碰到这个问题了,但看你文章却无法解决。QQ:63590240
1 楼 reene2008 2007-08-21  
很高兴能帮到你

相关推荐

    asp.net调用java webservice实例

    本文将详细介绍如何在 ASP.NET 环境下使用 C# 调用 Java WebService。 #### Web Service 定义与特点 根据 W3C 的定义,Web Service 是一种设计用于支持网络上系统之间可互操作的软件系统: 1. **接口描述**:具有...

    .net调用java WebService

    ### .NET调用Java WebService的关键知识点 #### 一、背景与原理介绍 在实际的软件开发过程中,不同技术栈之间的交互变得越来越普遍。对于.NET应用程序来说,有时需要调用由Java开发的WebService。这种跨平台的服务...

    c#调用Java webService的专题(一)

    本文将深入探讨如何使用C#调用Java WebService,这是实现.NET与Java平台间互操作性的一个重要方式。我们将首先理解WebService的基本概念,然后详细讲解C#中如何通过.NET Framework的SOAP客户端代理类来调用Java ...

    c#调用java带身份验证webservice

    综上所述,要使用C#调用Java带身份验证的Web服务,你需要生成客户端代理类,设置正确的身份验证头,处理XML响应,并确保具备良好的异常处理机制。这涉及到对.NET框架的理解,以及对XML和身份验证协议的熟悉。通过...

    C#调用JavaWebService(客户端)

    - **调用服务方法**:通过代理类的对象调用JavaWebService中的公开方法,传入参数并接收返回值。 3. **处理数据类型**: C#和Java的数据类型可能会有所不同,比如Java的`Date`在C#中可能是`DateTime`。为了解决...

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

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

    C#调用使用java的带soaphead的webservice

    最后,`C#调用使用java的带saophead的webservice-说明书.docx`应该是详细的步骤指南,包含了如何配置和调用Web服务的具体细节。确保按照说明书的指示操作,以确保正确地设置了SOAP Header和调用了Web服务。 总的来...

    C#调用WebService实例和开发(wsdl).rar

    在IT行业中,C#是一种广泛使用的...总之,掌握C#调用WebService的技术对于任何.NET开发者都是必不可少的。这个教程包提供了一个宝贵的资源,帮助开发者深入理解和应用这项技术,从而提升其在软件开发领域的专业能力。

    调用 java webservice 的问题

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

    调用webservice,通过post传参读取返回的XML

    4. **调用WebService**:在.NET环境中,可以通过`System.Web.Services.Protocols.SoapHttpClientProtocol`类或者更简单的Web Reference(在.NET Framework 4.0之后被WCF取代)来调用WebService。这里提到的`Ajax....

    C# 动态调用WebService服务

    动态调用WebService服务是C#中的一个关键技能,它允许程序员在运行时与远程Web服务进行交互,而无需预先知道服务的具体接口或方法。本文将深入探讨如何在C#中实现这一功能,并提供相关知识点。 首先,理解...

    Java访问c#开发的webservice

    ### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...

    WebService动态调用

    对于【C# WebService动态调用】,C#是微软.NET框架的主要开发语言,提供了丰富的库和工具来创建和消费Web服务。动态调用意味着在运行时确定要调用的Web方法,而不是在编译时硬编码。这通常通过System.Web.Services....

    c#调用Webservice经典例子

    总结来说,C#调用Java WebService的关键在于理解WebService的工作原理,正确添加服务引用,使用服务代理类进行调用,并处理返回的数据。这个经典例子——查询天气预报,可以帮助我们更好地掌握这一技能。同时,随着...

    C#调用java的webservice源代码

    总之,C#调用Java的Web Service是一个涉及多个技术层面的过程,涉及到Java Web Service的创建、C#客户端的生成和调用策略,以及跨语言的互操作性问题。提供的源代码压缩包将帮助开发者直观地理解这一过程,并可以在...

    C#通过SOAP使用HttpWebRequest调用带有身份验证的WebService示例

    本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599

    HttpClient 调用WebService示例

    在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...

    c#调用j2ee webservice 超详细 超傻瓜教程

    本教程将详细讲解如何使用C#调用J2EE WebService,帮助开发者实现这两种技术的无缝连接。 一、理解基础概念 1. C#:Microsoft .NET框架下的编程语言,广泛用于桌面应用、Web应用以及游戏开发。 2. J2EE(Java 2 ...

    基于.net环境的WebService开发资料

    - WebService的跨平台特性使得非.NET环境的应用也能调用.NET编写的WebService,例如Java、PHP等语言的应用都可以通过SOAP调用.NET WebService。 综上所述,基于.NET环境的WebService开发资料涵盖了从创建、调用到...

    C#调用ODI webservice

    总的来说,"C#调用ODI webservice"是一个涉及数据集成、Web服务和客户端应用开发的综合实践。通过掌握这些技术,开发者能够构建起跨平台、实时的数据交换解决方案,提升系统的灵活性和可扩展性。

Global site tag (gtag.js) - Google Analytics