3

我正在尝试基于定义一个请求和一个响应的 WSDL 创建一个 WS。传入请求应根据 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 取得了巨大成功,但无法正常工作。

任何帮助表示赞赏。

问候。

4

2 回答 2

0

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

于 2009-06-10T07:44:53.690 回答
0

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

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

您使用什么类型的端点应该没有任何区别,因为目前,您收到 404 响应 - 您的请求没有找到到达任何端点的方式。

于 2010-09-29T14:02:39.083 回答