问题描述
我用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被版主删除
解决方案六:
以后需再关注,现在先帮你顶一下