[英]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.