关于Mule ESB和Webservice的问题,问题很急。
一般调用WebService是通过wsdl2java先生成客户端,然后通过这个客户端去调的(这是静态的做法,当ws很多的时候,需要生成很多客户端)
我现在有个业务需求:
我在做一个基于ESB数据交换平台,在运行时会有上百个系统不断的接入进来。
每个系统在接入时都会在我们的平台上注册至少一个它本身的webservice来接收其他系统发过来的消息。
假如系统路由关系是这样的:A--->B,A--->C,A---D,即A系统的某个消息需要发送到B,C,D三个系统
如果后期有一个E系统接入进来,并配置了 A--->E的路由关系,那么E系统也会收到A系统的某个消息。
我不可能在平台运行阶段,每接入一个系统就写一个WebService客户端,所以我的想法是:
当接入系统注册webservice时,不生成客户端,而是保存这个ws的url和method名字,然后写个通用的方法:
String call( String url,String method,Object... args);
url: webservice的wsdl调用地址
method : 需要调用的webservice的方法
args:参数值
这样不管是哪个webservice都可以通过这个方法去调。
我现在是使用SAAJ的API写Java代码实现的,我现在的问题就是:
1、就上面那个call方法,大家的实现思路是什么 ?
2、mule ESB里有木有这样的现成组件可配置使用 ?
3、mule里的 <cxf:jaxws-client/>、<cxf:simple-client/>、<cxf:proxy-service/>、<cxf:proxy-client/> 按照官方教程
的步骤,均有问题。。。
大伙帮帮忙,帮我解决解决,顺便也介绍几个ESB的交流群或论坛什么的。。。谢谢。