webservice应用程序如何知道soap对特定方法的调用,而不在soap消息中使用操作名称?

Posted

技术标签:

【中文标题】webservice应用程序如何知道soap对特定方法的调用,而不在soap消息中使用操作名称?【英文标题】:How does webservice application know soap call for a particular method,without using operation name in soap message? 【发布时间】:2012-04-23 19:41:15 【问题描述】:

文档/文字 WSDL for myMethod

<types>
    <schema>
        <element name="xElement" type="xsd:int"/>
        <element name="yElement" type="xsd:float"/>
    </schema>
</types>

<message name="myMethodRequest">
    <part name="x" element="xElement"/>
    <part name="y" element="yElement"/>
</message>
<message name="empty"/>

<portType name="PT">
    <operation name="myMethod">
        <input message="myMethodRequest"/>
        <output message="empty"/>
    </operation>
</portType>

<binding .../>  

用于 myMethod 的文档/文字 SOAP 消息

<soap:envelope>
    <soap:body>
        <xElement>5</xElement>
        <yElement>5.0</yElement>
    </soap:body>
</soap:envelope>

Web 服务引擎如何知道特定方法的上述肥皂消息?

服务器应用程序如何知道soap消息正在调用哪个方法?

http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/链接供参考

【问题讨论】:

websphere 应用服务器或 .net 等中的 webservice 引擎等通用 不同的引擎可能会以不同的方式做到这一点。 请告诉我服务器应用程序如何知道soap消息正在调用哪个方法? 仅供参考,我认为这不是有效的文档/文字服务。它只能有一个消息部分用于输入,一个用于输出。此外,它必须在消息部分使用type=,而不是element= @john 这是我复制ibm.com/developerworks/webservices/library/ws-whichwsdl的 ibm 站点的链接@ 【参考方案1】:

服务器将根据参数类型识别方法并使用@Webmethod 进行注释。 如果有两个相似的方法,服务器将调用wsdl中指定的最后一个方法。

【讨论】:

以上是关于webservice应用程序如何知道soap对特定方法的调用,而不在soap消息中使用操作名称?的主要内容,如果未能解决你的问题,请参考以下文章

java webservice 如何在服务端设置相应的soapheader

java如何打印webservice 发送的soap报文协议

php 如何利用 soap调用.Net的WebService asmx文件

如何使用 AFNetworking 3.x 在 ios、objective-C 中使用来自 SOAP webservice 的数据

Jmeter发送SOAP请求对WebService接口测试

如何定义webservice响应的soap报文