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 代码
-
-
-
-
-
- public class JafUser implements java.io.Serializable {
-
-
-
-
- private String userId;
- private String userName;
- private Integer regionId;
-
-
-
-
- public JafUser() {
- }
-
- public Integer getRegionId() {
- return regionId;
- }
-
- public void setRegionId(Integer regionId) {
- this.regionId = regionId;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public String toString() {
- StringBuffer sb = new StringBuffer("[ ");
- sb.append("userId = "+this.userId).append(",");
- sb.append("userName = "+this.userName).append(",");
- sb.append("regionId = "+this.regionId).append(" ]");
- return sb.toString();
- }
- }
客户端c# 代码:
- ConsoleApplication1.com.lixy.ws.UserServiceEx manager = new ConsoleApplication1.com.lixy.ws.UserServiceEx();
- JafUser user = new JafUser();
- user.userId = "lixy01";
- user.userName = "lixiangyang01";
- user.regionId = 4301;
- user.regionIdSpecified = true;
- String result = manager.saveUser(user);
- Console.WriteLine("Result = " + result);
- Console.ReadLine();
regionIdSpecified 虽然不是JafUser对象()中的属性,但是在测试程序时,发现只有将user.regionIdSpecified设为 true,regionId才被发送到webservice端。望...
分享到:
相关推荐
本文将详细介绍如何在 ASP.NET 环境下使用 C# 调用 Java WebService。 #### Web Service 定义与特点 根据 W3C 的定义,Web Service 是一种设计用于支持网络上系统之间可互操作的软件系统: 1. **接口描述**:具有...
### .NET调用Java WebService的关键知识点 #### 一、背景与原理介绍 在实际的软件开发过程中,不同技术栈之间的交互变得越来越普遍。对于.NET应用程序来说,有时需要调用由Java开发的WebService。这种跨平台的服务...
本文将深入探讨如何使用C#调用Java WebService,这是实现.NET与Java平台间互操作性的一个重要方式。我们将首先理解WebService的基本概念,然后详细讲解C#中如何通过.NET Framework的SOAP客户端代理类来调用Java ...
综上所述,要使用C#调用Java带身份验证的Web服务,你需要生成客户端代理类,设置正确的身份验证头,处理XML响应,并确保具备良好的异常处理机制。这涉及到对.NET框架的理解,以及对XML和身份验证协议的熟悉。通过...
- **调用服务方法**:通过代理类的对象调用JavaWebService中的公开方法,传入参数并接收返回值。 3. **处理数据类型**: C#和Java的数据类型可能会有所不同,比如Java的`Date`在C#中可能是`DateTime`。为了解决...
Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...
最后,`C#调用使用java的带saophead的webservice-说明书.docx`应该是详细的步骤指南,包含了如何配置和调用Web服务的具体细节。确保按照说明书的指示操作,以确保正确地设置了SOAP Header和调用了Web服务。 总的来...
在IT行业中,C#是一种广泛使用的...总之,掌握C#调用WebService的技术对于任何.NET开发者都是必不可少的。这个教程包提供了一个宝贵的资源,帮助开发者深入理解和应用这项技术,从而提升其在软件开发领域的专业能力。
调用Java WebService的问题在IT领域中颇为常见,尤其是在跨平台、跨语言的环境中,如C#调用Java WebService。以下将详细解析这一过程中的关键知识点,包括WebService的架构原理、工具选择(如Axis2)、数据类型转换...
4. **调用WebService**:在.NET环境中,可以通过`System.Web.Services.Protocols.SoapHttpClientProtocol`类或者更简单的Web Reference(在.NET Framework 4.0之后被WCF取代)来调用WebService。这里提到的`Ajax....
动态调用WebService服务是C#中的一个关键技能,它允许程序员在运行时与远程Web服务进行交互,而无需预先知道服务的具体接口或方法。本文将深入探讨如何在C#中实现这一功能,并提供相关知识点。 首先,理解...
### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...
对于【C# WebService动态调用】,C#是微软.NET框架的主要开发语言,提供了丰富的库和工具来创建和消费Web服务。动态调用意味着在运行时确定要调用的Web方法,而不是在编译时硬编码。这通常通过System.Web.Services....
总结来说,C#调用Java WebService的关键在于理解WebService的工作原理,正确添加服务引用,使用服务代理类进行调用,并处理返回的数据。这个经典例子——查询天气预报,可以帮助我们更好地掌握这一技能。同时,随着...
总之,C#调用Java的Web Service是一个涉及多个技术层面的过程,涉及到Java Web Service的创建、C#客户端的生成和调用策略,以及跨语言的互操作性问题。提供的源代码压缩包将帮助开发者直观地理解这一过程,并可以在...
本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599
在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...
本教程将详细讲解如何使用C#调用J2EE WebService,帮助开发者实现这两种技术的无缝连接。 一、理解基础概念 1. C#:Microsoft .NET框架下的编程语言,广泛用于桌面应用、Web应用以及游戏开发。 2. J2EE(Java 2 ...
- WebService的跨平台特性使得非.NET环境的应用也能调用.NET编写的WebService,例如Java、PHP等语言的应用都可以通过SOAP调用.NET WebService。 综上所述,基于.NET环境的WebService开发资料涵盖了从创建、调用到...
总的来说,"C#调用ODI webservice"是一个涉及数据集成、Web服务和客户端应用开发的综合实践。通过掌握这些技术,开发者能够构建起跨平台、实时的数据交换解决方案,提升系统的灵活性和可扩展性。