我知道通过java的某些第3方支持就可以很方便的通过wsdl自动生成服务端和客户端。但我不会java。
而http://topic.csdn.net/u/20090622/07/5f37a827-d99c-4ae9-b46c-1371f841276f.html贴里说有一个工具能解决问题,工具名字叫XMLSpy 200X
但我下了个Altova XMLSpy 2006 无法解决问题。无法通过wsdl生成response包。request包好象可以生成,不过格式很有问题。
之后我也实验过soapUI 1.7-beta2 但依然无法解决问题。因为这个工具居然要我访问一个web服务,这个soapUI 1.7-beta2只能从一个已经存在的web服务里获得response包。。。。(话说,如果已经存在了web服务,我还要你soapUI干什么,我直接通过抓取网络包也能获取数据了...)
我这不就是想通过 wsdl获得 response 包吗...
10 个解决方案
#1
另外,手动分析wsdl之后 自写response包我也想过,但发现难度太大,本身我对xml就不熟。如果有谁对这个方法熟的话,教教我也可以。
#2
Altova XMLSpy 2006 可以直接生成 request并递交返回response,
我用下来还没发现格式有问题,一般只要填写递交数据即可。
我用下来还没发现格式有问题,一般只要填写递交数据即可。
#3
那就麻烦楼上直接帮我生成一个response包。
我急用。
我急用。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns3="http://rsp.sync.soap.bossagent.vac.unicom.com" xmlns:impl="http://soap.bossagent.vac.unicom.com" xmlns:intf="http://soap.bossagent.vac.unicom.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns2="http://req.sync.soap.bossagent.vac.unicom.com" xmlns:tns4="http://type.sync.soap.bossagent.vac.unicom.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soap.bossagent.vac.unicom.com">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://req.sync.soap.bossagent.vac.unicom.com">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OrderRelationUpdateNotifyRequest">
<sequence>
<element name="recordSequenceId" nillable="true" type="soapenc:string"/>
<element name="userIdType" nillable="true" type="soapenc:int"/>
<element name="userId" nillable="true" type="soapenc:string"/>
<element name="serviceType" nillable="true" type="soapenc:string"/>
<element name="spId" nillable="true" type="soapenc:string"/>
<element name="productId" nillable="true" type="soapenc:string"/>
<element name="updateType" nillable="true" type="soapenc:int"/>
<element name="updateTime" nillable="true" type="soapenc:string"/>
<element name="updateDesc" nillable="true" type="soapenc:string"/>
<element name="linkId" nillable="true" type="soapenc:string"/>
<element name="content" nillable="true" type="soapenc:string"/>
<element name="effectiveDate" nillable="true" type="soapenc:string"/>
<element name="expireDate" nillable="true" type="soapenc:string"/>
<element name="time_stamp" nillable="true" type="soapenc:string"/>
<element name="encodeStr" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://rsp.sync.soap.bossagent.vac.unicom.com">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OrderRelationUpdateNotifyResponse">
<sequence>
<element name="recordSequenceId" nillable="true" type="soapenc:string"/>
<element name="resultCode" type="xsd:int"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="orderRelationUpdateNotifyRequest">
<wsdl:part name="orderRelationUpdateNotifyRequest" type="tns2:OrderRelationUpdateNotifyRequest"/>
</wsdl:message>
<wsdl:message name="orderRelationUpdateNotifyResponse">
<wsdl:part name="orderRelationUpdateNotifyReturn" type="tns3:OrderRelationUpdateNotifyResponse"/>
</wsdl:message>
<wsdl:portType name="SyncNotifySPService">
<wsdl:operation name="orderRelationUpdateNotify" parameterOrder="orderRelationUpdateNotifyRequest">
<wsdl:input name="orderRelationUpdateNotifyRequest" message="impl:orderRelationUpdateNotifyRequest"/>
<wsdl:output name="orderRelationUpdateNotifyResponse" message="impl:orderRelationUpdateNotifyResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SyncNotifySPSoapBinding" type="impl:SyncNotifySPService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="orderRelationUpdateNotify">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.bossagent.vac.unicom.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.bossagent.vac.unicom.com"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SyncNotifySPServiceService">
<wsdl:port name="SyncNotifySP" binding="impl:SyncNotifySPSoapBinding">
<wsdlsoap:address location="http://localhost/vac/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
#4
以上是wsdl
#5
我用 Altova XMLSpy 2006 生成请求包之后
点soap - 发送请求给服务器。
结果弹出错误提示:
HTTP 错误:不能POST文件'/vac/'在服务器'localhost'上(405)
点soap - 发送请求给服务器。
结果弹出错误提示:
HTTP 错误:不能POST文件'/vac/'在服务器'localhost'上(405)
#6
举个例子 :
建立SOAP请求 http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?WSDL
选择第一个服务,第一个方法,生成请求包
不需要参数,直接点SOAP下发送到服务器
返回响应的xml结果
建立SOAP请求 http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?WSDL
选择第一个服务,第一个方法,生成请求包
不需要参数,直接点SOAP下发送到服务器
返回响应的xml结果
#7
ls你那是有ForexRmbRateWebService.asmx 存在的情况下啊。
我现在就是一个 wsdl 文件。 wsdl 只是一个描述。没有asmx 文件。
虽然可以通过http://localhost/vac/xxxx.wsdl 访问这个wsdl的结构。但是这个地址无法给我返回一个 response啊。因为这个地址根本就不接受post请求。
我现在就是一个 wsdl 文件。 wsdl 只是一个描述。没有asmx 文件。
虽然可以通过http://localhost/vac/xxxx.wsdl 访问这个wsdl的结构。但是这个地址无法给我返回一个 response啊。因为这个地址根本就不接受post请求。
#8
如果我能够利用 wsdl 自己创建一个服务端的话,那问题也就好办了。
直接自己写个程序对这个服务端进行http请求。把收到的回执包打出来 不就是了吗。当然,用了XMLSpy 可能就不需要写这个代码了。
但你说的这个参考有个前提啊,前提就是 先教会我怎么 在只有一个wsdl的情况下,利用这个wsdl创建一个服务端。
然后接下来我也会。
就是那XMLSpy 对我这个服务端地址进行请求。XMLSpy 请求完毕之后会把回执包自动打出来。
直接自己写个程序对这个服务端进行http请求。把收到的回执包打出来 不就是了吗。当然,用了XMLSpy 可能就不需要写这个代码了。
但你说的这个参考有个前提啊,前提就是 先教会我怎么 在只有一个wsdl的情况下,利用这个wsdl创建一个服务端。
然后接下来我也会。
就是那XMLSpy 对我这个服务端地址进行请求。XMLSpy 请求完毕之后会把回执包自动打出来。
#9
谢谢。已经解决了。
通过 vs2005 的wsdl.exe 生成webservice接口代码。引一下,创建服务端成功。
之后XMLSpy 请求之,response拿来。 不用我手工拼包了。XMLSpy 提供了不少方便。
感谢 hookee 提供的提示。
通过 vs2005 的wsdl.exe 生成webservice接口代码。引一下,创建服务端成功。
之后XMLSpy 请求之,response拿来。 不用我手工拼包了。XMLSpy 提供了不少方便。
感谢 hookee 提供的提示。
#10
您好,麻烦能把response的xml包发给我一份吗?我用axis生成的接口的代码,不过没成功.
我邮箱是 hongjun1178@gmail.com 非常感谢!
我邮箱是 hongjun1178@gmail.com 非常感谢!
#1
另外,手动分析wsdl之后 自写response包我也想过,但发现难度太大,本身我对xml就不熟。如果有谁对这个方法熟的话,教教我也可以。
#2
Altova XMLSpy 2006 可以直接生成 request并递交返回response,
我用下来还没发现格式有问题,一般只要填写递交数据即可。
我用下来还没发现格式有问题,一般只要填写递交数据即可。
#3
那就麻烦楼上直接帮我生成一个response包。
我急用。
我急用。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns3="http://rsp.sync.soap.bossagent.vac.unicom.com" xmlns:impl="http://soap.bossagent.vac.unicom.com" xmlns:intf="http://soap.bossagent.vac.unicom.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns2="http://req.sync.soap.bossagent.vac.unicom.com" xmlns:tns4="http://type.sync.soap.bossagent.vac.unicom.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soap.bossagent.vac.unicom.com">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://req.sync.soap.bossagent.vac.unicom.com">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OrderRelationUpdateNotifyRequest">
<sequence>
<element name="recordSequenceId" nillable="true" type="soapenc:string"/>
<element name="userIdType" nillable="true" type="soapenc:int"/>
<element name="userId" nillable="true" type="soapenc:string"/>
<element name="serviceType" nillable="true" type="soapenc:string"/>
<element name="spId" nillable="true" type="soapenc:string"/>
<element name="productId" nillable="true" type="soapenc:string"/>
<element name="updateType" nillable="true" type="soapenc:int"/>
<element name="updateTime" nillable="true" type="soapenc:string"/>
<element name="updateDesc" nillable="true" type="soapenc:string"/>
<element name="linkId" nillable="true" type="soapenc:string"/>
<element name="content" nillable="true" type="soapenc:string"/>
<element name="effectiveDate" nillable="true" type="soapenc:string"/>
<element name="expireDate" nillable="true" type="soapenc:string"/>
<element name="time_stamp" nillable="true" type="soapenc:string"/>
<element name="encodeStr" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://rsp.sync.soap.bossagent.vac.unicom.com">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OrderRelationUpdateNotifyResponse">
<sequence>
<element name="recordSequenceId" nillable="true" type="soapenc:string"/>
<element name="resultCode" type="xsd:int"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="orderRelationUpdateNotifyRequest">
<wsdl:part name="orderRelationUpdateNotifyRequest" type="tns2:OrderRelationUpdateNotifyRequest"/>
</wsdl:message>
<wsdl:message name="orderRelationUpdateNotifyResponse">
<wsdl:part name="orderRelationUpdateNotifyReturn" type="tns3:OrderRelationUpdateNotifyResponse"/>
</wsdl:message>
<wsdl:portType name="SyncNotifySPService">
<wsdl:operation name="orderRelationUpdateNotify" parameterOrder="orderRelationUpdateNotifyRequest">
<wsdl:input name="orderRelationUpdateNotifyRequest" message="impl:orderRelationUpdateNotifyRequest"/>
<wsdl:output name="orderRelationUpdateNotifyResponse" message="impl:orderRelationUpdateNotifyResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SyncNotifySPSoapBinding" type="impl:SyncNotifySPService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="orderRelationUpdateNotify">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.bossagent.vac.unicom.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.bossagent.vac.unicom.com"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SyncNotifySPServiceService">
<wsdl:port name="SyncNotifySP" binding="impl:SyncNotifySPSoapBinding">
<wsdlsoap:address location="http://localhost/vac/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
#4
以上是wsdl
#5
我用 Altova XMLSpy 2006 生成请求包之后
点soap - 发送请求给服务器。
结果弹出错误提示:
HTTP 错误:不能POST文件'/vac/'在服务器'localhost'上(405)
点soap - 发送请求给服务器。
结果弹出错误提示:
HTTP 错误:不能POST文件'/vac/'在服务器'localhost'上(405)
#6
举个例子 :
建立SOAP请求 http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?WSDL
选择第一个服务,第一个方法,生成请求包
不需要参数,直接点SOAP下发送到服务器
返回响应的xml结果
建立SOAP请求 http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?WSDL
选择第一个服务,第一个方法,生成请求包
不需要参数,直接点SOAP下发送到服务器
返回响应的xml结果
#7
ls你那是有ForexRmbRateWebService.asmx 存在的情况下啊。
我现在就是一个 wsdl 文件。 wsdl 只是一个描述。没有asmx 文件。
虽然可以通过http://localhost/vac/xxxx.wsdl 访问这个wsdl的结构。但是这个地址无法给我返回一个 response啊。因为这个地址根本就不接受post请求。
我现在就是一个 wsdl 文件。 wsdl 只是一个描述。没有asmx 文件。
虽然可以通过http://localhost/vac/xxxx.wsdl 访问这个wsdl的结构。但是这个地址无法给我返回一个 response啊。因为这个地址根本就不接受post请求。
#8
如果我能够利用 wsdl 自己创建一个服务端的话,那问题也就好办了。
直接自己写个程序对这个服务端进行http请求。把收到的回执包打出来 不就是了吗。当然,用了XMLSpy 可能就不需要写这个代码了。
但你说的这个参考有个前提啊,前提就是 先教会我怎么 在只有一个wsdl的情况下,利用这个wsdl创建一个服务端。
然后接下来我也会。
就是那XMLSpy 对我这个服务端地址进行请求。XMLSpy 请求完毕之后会把回执包自动打出来。
直接自己写个程序对这个服务端进行http请求。把收到的回执包打出来 不就是了吗。当然,用了XMLSpy 可能就不需要写这个代码了。
但你说的这个参考有个前提啊,前提就是 先教会我怎么 在只有一个wsdl的情况下,利用这个wsdl创建一个服务端。
然后接下来我也会。
就是那XMLSpy 对我这个服务端地址进行请求。XMLSpy 请求完毕之后会把回执包自动打出来。
#9
谢谢。已经解决了。
通过 vs2005 的wsdl.exe 生成webservice接口代码。引一下,创建服务端成功。
之后XMLSpy 请求之,response拿来。 不用我手工拼包了。XMLSpy 提供了不少方便。
感谢 hookee 提供的提示。
通过 vs2005 的wsdl.exe 生成webservice接口代码。引一下,创建服务端成功。
之后XMLSpy 请求之,response拿来。 不用我手工拼包了。XMLSpy 提供了不少方便。
感谢 hookee 提供的提示。
#10
您好,麻烦能把response的xml包发给我一份吗?我用axis生成的接口的代码,不过没成功.
我邮箱是 hongjun1178@gmail.com 非常感谢!
我邮箱是 hongjun1178@gmail.com 非常感谢!