如何开发 .NET客户调用java 的 Web Service

问题描述

我用javaCXF写的WebService,已经用java客户调试通过了.但是.NET客户还不行.我对.NET一点也不懂.弄了2天了,还是不知道为何不行.以下是我的步骤:1)creatawebsite;2)添加web引用,在URL中输入问题开始出现了,我java定义的WebService接受2个参数,并声明抛出一个异常.StringsayHi(Stringtext,Profileinfo)throwsBusinessLogicException;现在它不能够正确找到方法.它找到的方法:sayHi(textAsstring)Asstring但是丢了一个Profileinfo参数和异常!3)如果我在.cs文件调用就出错,因为根本没法编译localhost.HelloWorldImpService另外,如果我添加service引用,ServiceReference可以找到Profile,BusinessLogicException.以下是我的wsdl文件.哪位大虾指点一下啊.<?xmlversion="1.0"encoding="utf-8"?><wsdl:definitionsxmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:tns="http://spring.demo/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"name="HelloWorldService"targetNamespace="http://spring.demo/"><wsdl:types><xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"attributeFormDefault="unqualified"elementFormDefault="unqualified"targetNamespace="http://spring.demo/"xmlns:tns="http://spring.demo/"><xs:elementname="BusinessLogicFaultDetail"nillable="true"type="tns:BusinessLogicFaultDetail"/><xs:elementname="sayHi"nillable="true"type="tns:sayHi"/><xs:elementname="sayHiResponse"nillable="true"type="tns:sayHiResponse"/><xs:complexTypename="sayHi"><xs:sequence><xs:elementminOccurs="0"name="text"type="xs:string"/><xs:elementminOccurs="0"name="info"type="tns:profileInfo"/></xs:sequence></xs:complexType><xs:complexTypename="profileInfo"><xs:sequence><xs:elementminOccurs="0"name="addressLine1"type="xs:string"/><xs:elementminOccurs="0"name="addressLine2"type="xs:string"/><xs:elementminOccurs="0"name="city"type="xs:string"/><xs:elementminOccurs="0"name="companyName"type="xs:string"/><xs:elementminOccurs="0"name="email"type="xs:string"/><xs:elementminOccurs="0"name="fax"type="xs:string"/><xs:elementminOccurs="0"name="firstName"type="xs:string"/><xs:elementminOccurs="0"name="lastName"type="xs:string"/><xs:elementminOccurs="0"name="middleName"type="xs:string"/><xs:elementminOccurs="0"name="mobile"type="xs:string"/><xs:elementminOccurs="0"name="phone"type="xs:string"/><xs:elementminOccurs="0"name="state"type="xs:string"/><xs:elementminOccurs="0"name="status"type="xs:string"/><xs:elementminOccurs="0"name="zip"type="xs:string"/></xs:sequence></xs:complexType><xs:complexTypename="sayHiResponse"><xs:sequence><xs:elementminOccurs="0"name="return"type="xs:string"/></xs:sequence></xs:complexType><xs:complexTypename="BusinessLogicFaultDetail"/></xs:schema></wsdl:types><wsdl:messagename="BusinessLogicException"><wsdl:partelement="tns:BusinessLogicFaultDetail"name="BusinessLogicException"></wsdl:part></wsdl:message><wsdl:messagename="sayHiResponse"><wsdl:partelement="tns:sayHiResponse"name="parameters"></wsdl:part></wsdl:message><wsdl:messagename="sayHi"><wsdl:partelement="tns:sayHi"name="parameters"></wsdl:part></wsdl:message><wsdl:portTypename="HelloWorld"><wsdl:operationname="sayHi"><wsdl:inputmessage="tns:sayHi"name="sayHi"></wsdl:input><wsdl:outputmessage="tns:sayHiResponse"name="sayHiResponse"></wsdl:output><wsdl:faultmessage="tns:BusinessLogicException"name="BusinessLogicException"></wsdl:fault></wsdl:operation></wsdl:portType><wsdl:bindingname="HelloWorldServiceSoapBinding"type="tns:HelloWorld"><soap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operationname="sayHi"><soap:operationsoapAction=""style="document"/><wsdl:inputname="sayHi"><soap:bodyuse="literal"/></wsdl:input><wsdl:outputname="sayHiResponse"><soap:bodyuse="literal"/></wsdl:output><wsdl:faultname="BusinessLogicException"><soap:faultname="BusinessLogicException"use="literal"/></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:servicename="HelloWorldService"><wsdl:portbinding="tns:HelloWorldServiceSoapBinding"name="HelloWorldPort"><soap:addresslocation="http://localhost:9090/spring_http/ws/ServerEndPoint"/></wsdl:port></wsdl:service></wsdl:definitions>

解决方案

解决方案二:
大家都说:在vs中添加web引用,然后在url中直接输入webservice地址,添加引用就可以了为什么引用不能够正确找到方法?另外我也试用了wsdl.exe,以下是生成的cs文件.不知道怎么没有异常的代码.不知道正确否.我头都大了,大家帮帮我.//不准我贴cs文件,说太长了:(
解决方案三:
.NET引用WS的时候不是由命名空间么,会不会你没有用命名空间呢???命名空间让你就像使用本地组件一样用WS
解决方案四:
在哪里定义命名空间?我的wsdl文件里面是否已经正确定义了命名空间?我试了试,如果我java定义的是:StringsayHi(Stringtext);web引用能够正确找到方法.它找到的方法:sayHi(textAsstring)Asstring但是如果我java定义是:StringsayHi(Stringtext,Profileinfo)throwsBusinessLogicException;web引用找到的方法还是:sayHi(textAsstring)Asstring就是找不到Profileinfo参数和异常!
解决方案五:
该回复于2008-05-09 11:19:33被版主删除
解决方案六:
以后需再关注,现在先帮你顶一下

时间: 2024-08-01 01:22:58

如何开发 .NET客户调用java 的 Web Service的相关文章

[Java] 利用Axis库调用C#的Web Service

[Java] 利用Axis库调用C#的Web Service 编写者 日期 关键词 郑昀@ultrapower 2005-8-2 Java Web Service Axis C#   概述 试图从Java调用C#编写的Web Service,借用了王咏刚的wsCaller源代码中DynamicInvoker类. 开始不清楚DynamicInvoker类的portName的含义,望文生义,以为是8080之类的端口号,实际上是下面wsdl中的wsdl:port 节点的"name"属性值&q

Java RESTful Web Service实战(第2版)

Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版. -北京:机械工业出版社,2016.7 (Java核心技术系列) ISBN 978-7-111-54213-1 Ⅰ. J-   Ⅱ. 韩-   Ⅲ. JAVA语言-程序设计   Ⅳ. TP312 中国版本图书馆CIP数据核字(2016)第156331号 Java RESTful Web Servi

Java RESTful Web Service实战(第2版) 导读

Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著   半年前初识韩陆的时候,我们就聊到他正在写的这本书,当得知我从2006年就参与了Apache CXF开发,他立即邀请我为他的新书写序,我也就欣然答应了. Apache CXF作为JAXWS以及JAX-RS规范的实现框架,已经成为很多Web服务开发者必选的开发框架.作为这一框架的开发维护者之一,我的日常工作经常需要熟悉这些JSR规范,并实现JSR所定义的API,解决最终用户的使用问题. 熟悉Java

Java调用.Net的web service的几种方式

最近做项目,涉及到web-service调用,现学了一个星期,现简单的做一个小结.下面实现的是对传喜物流系统(http://vip.cxcod.com/PodApi/GetPodStr.asmx?wsdl)的订单跟踪(web-service调用)功能. 一. 使用axis1.x调用webservice方法 Axis的最常用版本:1.4和2.0版本.以下为1.4版本 核心代码:   // webserviceURL       service_url = "http://vip.cxcod.com

JAVA+AXIS客户端调用Asp.net Web Service过程中遇到的问题及解决方法

        背景:公司与某运营商合作,运营商提供了接口文档,在文档中规定了数据流是双向的,运营商和公司之间的通讯采用Web Service方式,双方互为客户端和服务器端.这次遇到的问题,就是运营商的客户端调用我公司服务端的Web Service时出现的情况.需要特别说明的是:运营商有几十家合作伙伴,所以客户端的代码是不能因为某一家合作伙伴而修改的,各合作伙伴的WEB SERVICE开发环境也不相同,大部分都是用JAVA语言开发,而我公司是用VS2005开发的.         过程:    

Java RESTful Web Service实战(第2版) 1.2 解读REST服务

1.2 解读REST服务 RESTful对应的中文是REST式的,RESTful Web Service的准确翻译应该是REST式的Web服务,我们通常简称为REST服务.RESTful的应用或者Web服务是最常见的两种REST式的项目部署.存在的方式.本节将介绍REST服务并对比其与传统Web Services的不同. 1.2.1 REST式的Web服务 RESTful Web Service是一种遵守REST式风格的Web服务.REST服务是一种ROA(Resource-Oriented A

Java RESTful Web Service实战(第2版) 2.3 传输格式

2.3 传输格式 本节要考虑的就是如何设计表述,即传输过程中数据采用什么样的数据格式.通常,REST接口会以XML和JSON作为主要的传输格式,这两种格式数据的处理是本节的重点.那么Jersey是否还支持其他的数据格式呢?答案是肯定的,让我们逐一掌握各种类型的实现. 2.3.1 基本类型 Java的基本类型又叫原生类型,包括4种整型(byte.short.int.long).2种浮点类型(float.double).Unicode编码的字符(char)和布尔类型(boolean). 阅读指南 本

Java RESTful Web Service实战(第2版) 1.4 Jersey项目概要

1.4 Jersey项目概要 Jersey是JAX-RS标准的参考实现,是Java领域中最纯正的REST服务开发框架.本节将带读者走近Jersey的世界. Jersey项目是GlashFish项目的一个子项目,专门用来实现JAX-RS(JSR 311 & JSR 339)标准,并提供了扩展特性. 1.4.1 获得Jersey Jersey项目的地址是https://jersey.java.net.该网站同时提供了JAX-RS和JAX-RS2两个并行版本,分别是JAX-RS1.1(截至本书发稿,最

Java RESTful Web Service实战(第2版) 1.3 解读JAX-RS标准

1.3 解读JAX-RS标准 JAX-RS是Java领域的REST式的Web服务的标准规范,是使用Java完成REST服务的基本约定. 1.3.1 JAX-RS2标准 Java领域中的Web Service是指实现SOAP协议的JAX-WS.直到Java EE 6(发布于2008年9月)通过JCP(Java Community Process)组织定义的JSR311(http://www.jcp.org/en/jsr/detail?id=311),才将REST在Java领域标准化. JSR311