【问题标题】:Migration to Spring WS 2.0 failed due to lack of bean endpoint mapping?由于缺少 bean 端点映射,迁移到 Spring WS 2.0 失败?
【发布时间】:2011-04-27 09:43:09
【问题描述】:

我们使用 PayloadRootQNameEndpointMapping 将端点脚本(基于 groovy 或其他脚本语言)映射到给定的根 QName。我们最近尝试将 spring ws 迁移到 2.0 版本。 PayloadRootQNameEndpointMapping 的 javadoc 显示该类被标记为已弃用。

PayloadRootQNameEndpointMapping 自 Spring Web Services 2.0 起已弃用,支持 PayloadRootAnnotationMethodEndpointMapping

由于注释是静态的,我们无法为脚本端点提供动态概念。到目前为止,我们通常可以将处理脚本端点(提供脚本文件和一些上下文)的 Bean 映射到根 QName

简短:我们如何在不使用已弃用 API 的情况下实现良好的旧 bean 端点到 Root QName 的映射?有什么想法吗?

提前谢谢你。

【问题讨论】:

    标签: java spring spring-ws


    【解决方案1】:

    您可以使用SimpleMethodEndpointMapping 之类的东西来编写您自己的调度程序吗?检查源链接

    【讨论】:

    • 是的,我为此编写了自己的调度程序。我现在还生成 bean 配置,虽然不是最佳实践 =/
    【解决方案2】:

    您可以使用更通用的XPathPayloadEndpointMapping,其中 xpath 将指向根元素。

    <bean id="endpointMapping" class="org.springframework.ws.server.endpoint.mapping.XPathPayloadEndpointMapping">
        <property name="expression" value="local-name(//*[1])" />
        <property name="endpointMap">
            <map>
                <entry key="rootElement" value="endpointRef" />
            </map>
        </property>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 2014-12-06
      • 2020-10-03
      • 2021-02-14
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多