在我的应用程序中,我必须通过调用Web服务来验证传入消息的授权。例如,如果用户属于授权组,则只处理该消息。为此,我必须从传入消息的一个属性(比如userId(而不是整个传入消息))构建authorizationRequest,并将其发送到webservice
我是骆驼新手。为了在非camel应用程序中实现这一点,我会创建一个webservice客户端,使用userId(param)进行调用并处理响应。骆驼的主要路线:
from( <URI> ).routeId("UpdateRoute")
.process("AuthorizationProcessor")
.process( "ValidateProcessor" )
.choice()
.when(matches(cond1)).to("cond1Processor")
.when(matches(cond2)).to("cond2UpdateProcessor")
.otherwise().to( "invalidconditionProcessor" );
}
使用Camel,我调用了一个自定义处理器AuthorizationProcessor,并像在非Camel应用程序中一样进行Web服务调用。我没有正确使用Camel
拨打客服电话的合适方式是什么
我尝试创建一个路由AuthorizationRoute,然后可以使用spring-ws组件进行调用。但不确定该路由将如何调用,以及在哪里构建请求。
Camel有几个组件能够进行Web服务调用(REST或SOAP)。其中最流行的是camel-cxf,它(你猜对了)使用ApacheCXF进行WS调用
有无数的选择,但归根结底包括:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
然后在你的路线上:
from( <URI> ).routeId("UpdateRoute")
.to("cxf:http://address/service?serviceClass=com.MyClass")
.process( "ValidateProcessor" ) // process the resoponse here
.choice()
.when(matches(cond1)).to("cond1Processor")
.when(matches(cond2)).to("cond2UpdateProcessor")
.otherwise().to( "invalidconditionProcessor" );