|
1
|
| Sean Patrick Floyd · 技术社区 · 15 年前 |
|
|
1
2
与在运行时生成代理不同,听起来您希望离线创建web服务代理/客户机代码。
作为另一种方法,客户机bean可以指向静态wsdl文件,而不是位于远程服务器上的文件。 |
|
|
2
1
尽管静态wsdl创建方法很有前途,但我选择了另一种方法(主要是因为cxfmaven代码生成有缺陷)。 我将另一个factoryBean包装在现有的factoryBean上,并将其附加到一个服务提供者对象上,该对象定期 pings the wsdl URL for availability . 我在factorybean中的缓存中保存了一个服务代理,一旦它被创建,一旦服务提供者ping失败就删除它。 如果服务当前不可用,我的FactoryBean会抛出ServiceNotAvailableException。我的前端捕捉到这一点,并显示了一个不错的“服务当前不可用”页面。 此外,AspectJ方面捕获对服务的所有写入调用,并在服务再次可用时重新调度它们。 以下是我的spring配置的摘录:
|