繁体   English   中英

在Spring-ws中使用SoapActionEndpointMapping

[英]Usage of SoapActionEndpointMapping in Spring-ws

我正在尝试基于WSDL创建一个WSDL,该WSDL定义了一个请求和一个响应。 输入的请求应根据SOAP消息中定义的SOAPAction映射到端点。 为此,我尝试在servlet.xml配置文件中使用SoapActionEndpointMapping并定义映射,如Spring文档中所述

 <bean id="endpointMapping" class="org.springframework.ws.soap.server.endpoint.mapping.SoapActionEndpointMapping">
    <property name="mappings">
        <props>
            <prop key="http://myCompany/MyService/MyRequest/mySoapActionOne">myFirstEndpoint</prop>
            <prop key="http://myCompany/MyService/MyRequest/mySoapActionTwo">mySecondEndpoint</prop>
        </props>
    </property>

我的端点扩展了AbstractMarshallingPayloadEndpoint,应该能够处理请求。

问题是当我尝试发送请求(使用SoapUI)时,我在日志中收到以下错误:

WARN  [EndpointNotFound] No endpoint mapping found for [SaajSoapMessage {http://schemas.mycompany/MyService}MyRequest]

我之前已经使用PayloadRootQNameEndpointMapping取得了很大的成功,但是无法正常工作。

任何帮助表示赞赏。

问候。

在您的SOAP客户端(SOAPUI)中,您需要将SOAPAction标头添加到您的请求中,以向spring提供要在其映射中使用的SOAP操作。

例如SOAPAction = http:// myCompany / MyService / MyRequest / mySoapActionOne

您使用哪种类型的端点都没有任何区别,因为当前您收到的是404响应-您的请求找不到通往任何端点的方式。

您是否也定义了处理程序适配器bean? 您需要一个才能使用MarshallingPayloadEndpoint,以便spring知道如何执行编组。 该适配器的名称类似于MarshallingEndpointHandlerAdapter或类似名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM