一、Axis安装
1.测试环境
JDK 1.5Servlet Container: Tomcat 5.5
2.下载地址:http://ws.apache.org/axis/
3.解压缩安装包,将$AXIS_UNZIP_PATH/axis-version/webapps下的axis包拷贝到$TOMCAT_HOME/webapps/下,
以下约定$AXIS_HOME为该$TOMCAT_HOME/webapps/axis目录
4.启动tomcat,访问http://localhost:8080/axis 检查安装是否成功
5.设置classpath编写setEnv.bat:
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
二.使用axis支持web service的部署和开发,最主要有两种方式:
(一)。Dynamic Invocation Interface ( DII)
1.编写服务端程序HelloClient
![](https://i-blog.csdnimg.cn/blog_migrate/93e7d817db93af9adbfbd54aff7bab72.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d83d5cc4f5391ad069639f14542767c6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f67c1b5ea11a5fd11b51838e1d260ce9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
2.将源码拷贝到AXIS_HOME下,重命名为 HelloClient.jws
3.访问连接http://localhost:8080/axis/HelloClient.jws?wsdl,页面显示axis自动生成的wsdl
4.编写访问服务的客户端 TestHelloClient.java
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/93e7d817db93af9adbfbd54aff7bab72.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d83d5cc4f5391ad069639f14542767c6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f67c1b5ea11a5fd11b51838e1d260ce9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
5.运行TestHelloClient测试;
(二)。 Stubs方式
1.编写服务端程序server,SayHello.java,编译server.SayHello.java
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/93e7d817db93af9adbfbd54aff7bab72.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d83d5cc4f5391ad069639f14542767c6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f67c1b5ea11a5fd11b51838e1d260ce9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
2.编写LogHandler.java
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/93e7d817db93af9adbfbd54aff7bab72.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d83d5cc4f5391ad069639f14542767c6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f67c1b5ea11a5fd11b51838e1d260ce9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
3..编写wsdd文件
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
4.将编译后的文件拷贝到AXIS_HOME/WEB-INF/classes下,如:D:/tomcat/webapps/axis/WEB-INF/classes
5.发布服务:
java org.apache.axis.client.AdminClient -h localhost -p 8080 -s /axis/servlet/AxisServlet deploy.wsdd
命令参数为:
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
6.生成client stub文件
a:方式1
将SayHello.java拷贝到AXIS_HOME/下,重命名为SayHello.jws,执行下面的命令生存client stub
java org.apache.axis.wsdl.WSDL2Java -p client http://localhost:8080/axis/services/SayHello.jws?wsdl
b:方式2
执行如下命令生成SayHello.wsdl
java org.apache.axis.wsdl.Java2WSDL -oSayHello.wsdl -lhttp://localhost:8080/axis/services/SayHello -nsayhello server.SayHello
执行如下命令生成client stub
java org.apache.axis.wsdl.WSDL2Java SayHello.wsdl -p client
生成的stub client文件列表为:
1。SayHello.java
2。SayHelloService.java。
3。SayHelloServiceLocator.java
4。SayHelloSoapBindingStub.java
7.编写客户端程序,编译并执行
![](https://i-blog.csdnimg.cn/blog_migrate/93e7d817db93af9adbfbd54aff7bab72.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d83d5cc4f5391ad069639f14542767c6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/baa4571ac490bd563e418955e1ba44bc.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78beeac553ac0dc88fe21aa40d459a58.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9f0b04a60f81c8ffa11ca50b42eaa8ea.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/741b48a8c2e879fc0028ce4a96497c0b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c5a62adab525186e3fe773194b3f1830.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f67c1b5ea11a5fd11b51838e1d260ce9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
8.开发自己的WEB应用程序的web service ,需要在描述文件WEB-INF/web.xml文件中添加:
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5b720ee1badff47f6f7d3d16a58ae669.gif)