我在配置Web服务使用者时遇到了非常基本的问题,我希望有人可以帮助。
我正在使用 Anypoint Studio 2015年3月发布 版本:5.1.2 Build Id:201504301511 在Windows Vista上
我尝试使用的服务的WSDL是
<definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>
<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://localhost:8080/"/>
</port>
</service>
</definitions>
它是来自W3C网站的示例的副本,只修改了肥皂地址。
我遇到的第一个问题是,在成功将WDL文件导入我的mule项目后,我无法使用文件Global Element Property窗口使用文件浏览'按钮'填充WDSL位置文本框。
单击文件浏览按钮会成功列出我的mule项目中的所有* .wsdl文件,但选择其中任何文件都不会填充WSDL位置文本框。
手动输入项目中wsdl的文件路径似乎识别出wsdl。它不再报告缺少wsdl位置属性,它会自动从wsdl(StockQuoteService)中的服务定义填充服务文本框。但是,端口(和地址)下拉列表不会从WSDL条目中填充。
手动输入端口(StockQuotePort)会自动从WSDL填充地址文本框,但它会报告错误“Web服务使用者仅支持带SOAP主体的端口”。
任何帮助都将不胜感激。
答案 0 :(得分:1)
ws-consumer 也适用于本地WSDL,并且可以在Mac上使用:
Anypoint Studio March 2015 Release
Version: 5.1.1
Build Id: 201504011500
可能是Windows Studio发行版的错误。但是,您也可以切换到XML视图并编辑 ws-consumer-config ,只需从类路径中读取WSDL:
<ws:consumer-config name="Web_Service_Consumer1"
wsdlLocation="MyLocalWsdl.wsdl" service="ImportV200606" port="ImportV200606Soap"
serviceAddress="https://MyLocalService/service.svc?responseTimeout=280000"
doc:name="Web Service Consumer">
</ws:consumer-config>