【发布时间】:2013-02-04 19:53:18
【问题描述】:
我正在实现一个基于 SOAP 的 Web 服务并且已经让 WS-Addressing 工作。但是,我看不到如何让 WSDL 发布客户端应该使用的内容作为 wsa:To 元素的值。
我在我的 WSDL 中使用了下面的 sn-p,并使用 SOAP-UI 来生成请求。 SOAP-UI 似乎认识到 wsa:action 应该设置为“http://myco.com/myOperation”,尽管它不会自动添加此标头。我必须选择“添加 WS-A 标头”菜单选项。
我的问题是它没有添加 wsa:To 标头。谁能告诉我如何修改我的 WSDL 以告诉客户 wsa:To 是必需的,并且它的值应该是“http://myco.com/cap/services/v1”?
谢谢
<wsdl:portType name="MyPortType">
<wsdl:operation name="MyOperation">
<wsdl:input message="tns:MyRequestMessage" name="Request"
wsaw:Action="http://myco.com/myOperation"/>
<wsdl:output message="tns:MyResponseMessage" name="Response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MyBinding" type="tns:MyPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsaw:UsingAddressing wsdl:required="true"/>
<wsdl:operation name="MyOperation">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyService">
<wsdl:port binding="tns:MyBinding" name="MyPort">
<soap:address location="http://myco.com/services"/>
<wsa:Address>http://myco.com/cap/services/v1</wsa:Address>
</wsdl:port>
</wsdl:service>
【问题讨论】:
标签: soap wsdl ws-addressing