如何实现Spring管理下的不依赖于服务器端启动与否的WebService客户端
最近在项目中遇到一种情况,就是两个程序需要使用WebService互通数据,有时系统A需要调用系统B提供的WebService服务,有时系统B需要调用系统A提供的WebService服务。
我使用Spring 管理下的 Apache CXF 来实现WebService服务。现在遇到的问题是,Spring管理的WebService客户端使用org.apache.cxf.frontend.ClientProxyFactoryBean 的一个bean来实现,这个东西需要在配置文件中写死WebService服务器端的地址,当系统启动的时候,Spring就会尝试去访问这个地址,来初始化这个bean。这也就意味着客户端必须依赖与服务器端启动与否。
在我遇到的场景下,也就是系统A要使用系统B提供的WebService服务,系统A必须等待系统B启动以后才能启动;系统B需要使用系统A提供的WebService服务,系统B必须等待系统A启动以后才能启动。这是一个死循环。
那么,有没有什么办法,可以让WebService的客户端启动的时候,不必等待WebService的服务器端启动起来。而是在客户端真正去调用服务器端提供的服务的时候,才去尝试连接服务器?
如果使用代码来实现客户端,似乎是有办法的。但是我想利用Spring提供的WebService支持以简化开发,在Spring管理下的客户端实现有没有什么办法解决这个问题?
我相信很多朋友都遇到过类似的问题。我也真正研究中。等有结果了再写上来。