如何向Camel的Spring Web服务组件添加自定义参数

时间:2019-07-07 23:42:37

标签: web-services apache-camel spring-camel

我的应用程序使用骆驼核心和骆驼弹簧-ws 2.19.0版本。我需要它使用Camel的SpringWebserviceComponent向客户的服务发送响应消息。

除了客户端的url以外,这都是非常标准的,它的末尾包含一个没有值的参数,例如https://client-service.com/path/index.php?protocol+web_service

我以前从未见过这样的URL,但是客户端声明末尾的参数(问号后且没有值)映射到其应用程序中的控制器。

当我尝试将其输入到我的应用程序中时,出现了org.apache.camel.ResolveEndpointFailedException。

我仔细阅读了SpringWebserviceComponent的源代码和org.apache.camel.impl.DefaultComponent(其扩展了SpringWebServiceComponent)的第129行,以验证URL参数并在任何参数不是有效参数的情况下引发ResolveEndpointFailedException用于Spring Web服务组件,如以下所列:https://camel.apache.org/spring-web-services.html。当然,protocol + web_service对于SpringWebserviceComponent来说不是有效的参数,因此会引发异常。

仅当SpringWebServiceEndpoint的isLenientProperties()方法返回false(很难对其进行编码)时,才进行此验证。

有人可以建议其他方法使SpringWebServiceComponent接受此URL,包括其非标准参数吗?

1 个答案:

答案 0 :(得分:0)

很抱歉,此功能不立即可用,您可以尝试扩展spring-ws组件并覆盖一些设置端点和诸如此类的方法,然后为您的客户端添加这个“无效” URL的技巧用途。