这个生成既需要包括客户端消费框架cxf动态生成客户端,也需要包括服务提供端框架类似原来基于WSDL文件cxf动态生成客户端,用CXF框架来生成代码框架一样注意。
动态字节码生成,创建代理类,但是可以通过 SPI 扩展机制配置自己的动态代理策略19服务提供者没挂,但在注册中心里看不到。

标签: cxf动态生成客户端
%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1
%5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1 %5+1这个生成既需要包括客户端消费框架cxf动态生成客户端,也需要包括服务提供端框架类似原来基于WSDL文件cxf动态生成客户端,用CXF框架来生成代码框架一样注意。
动态字节码生成,创建代理类,但是可以通过 SPI 扩展机制配置自己的动态代理策略19服务提供者没挂,但在注册中心里看不到。

标签: cxf动态生成客户端
抱歉,评论功能暂时关闭!