2012-11-04 61 views
1

我使用薩翁與下面的WSDL薩翁似乎只讀取一個多端口的SOAP服務

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:v2bind="urn:oasis:names:tc:wsrp:v2:bind" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:oasis:names:tc:wsrp:v2:wsdl"> 
<import namespace="urn:oasis:names:tc:wsrp:v2:bind" location="http://localhost:8080/wsrp-portlet/wsdl/wsrp-2.0-bindings.wsdl"/> 
<wsdl:service name="WSRP_v2_Service"> 
    <wsdl:port binding="v2bind:WSRP_v2_Markup_Binding_SOAP" name="WSRP_v2_Markup_Service"> 
     <soap:address location="http://localhost:8080/wsrp-portlet/services/WSRP_v2_Markup_Service?wsrpProducerUuid=48322cfd-c68b-4053-b9b4-aff1644d6e1e"/> 
    </wsdl:port> 
    <wsdl:port binding="v2bind:WSRP_v2_ServiceDescription_Binding_SOAP" name="WSRP_v2_ServiceDescription_Service"> 
     <soap:address location="http://localhost:8080/wsrp-portlet/services/WSRP_v2_ServiceDescription_Service?wsrpProducerUuid=48322cfd-c68b-4053-b9b4-aff1644d6e1e"/> 
    </wsdl:port> 
    <wsdl:port binding="v2bind:WSRP_v2_Registration_Binding_SOAP" name="WSRP_v2_Registration_Service"> 
     <soap:address location="http://localhost:8080/wsrp-portlet/services/WSRP_v2_Registration_Service?wsrpProducerUuid=48322cfd-c68b-4053-b9b4-aff1644d6e1e"/> 
    </wsdl:port> 
    <wsdl:port binding="v2bind:WSRP_v2_PortletManagement_Binding_SOAP" name="WSRP_v2_PortletManagement_Service"> 
     <soap:address location="http://localhost:8080/wsrp-portlet/services/WSRP_v2_PortletManagement_Service?wsrpProducerUuid=48322cfd-c68b-4053-b9b4-aff1644d6e1e"/> 
    </wsdl:port> 
</wsdl:service> 

當我檢查的第一口,

savon.wsdl.endpoint 

我只得到,

#<URI::HTTP:0x00000101eea398 URL:http://localhost:8080/wsrp-portlet/services/WSRP_v2_Markup_Service?wsrpProducerUuid=48322cfd-c68b-4053-b9b4-aff1644d6e1e> 

savon可以處理帶有多個端口定義的wsdl嗎?如果沒有任何建議,支持它的紅寶石替代品?

回答

1

我一直在看到與薩翁同樣的事情。我可以通過明確設置端點來手動更改端點

Savon.client do 
    wsdl.endpoint = "http://service.example.com" 
end