web应用里 动态调用CXF服务端方式,一直运行着的旧接口无任何问题,但是新加入注册表的服务(同一个WSDL地址新增operation)
就会报找不到operation, 察觉出一个规律,就是在JaxWsDynamicClientFactory createClient的时候,log4j会打印出Created classes: A,B,C,D,E。
等所有被调用的 WSDL地址 的operation的class生成情况,但是新增的operation就在 createClient调用时打印出来的 Created classes:里没出现
代码:
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory
.newInstance();
Client c = factory.createClient("http://ip:port/path/ws/service?wsdl");
分析 JaxWsDynamicClientFactory创建相同的wsdl的client时 , createClient生成的东西存在于缓存内,createClient时候还是老的存根,
问题虽暂时解决,但是不能一升级服务端 我这块就重启啊 而且 万一将来我不知道对方升级 当然不可能重启了。