转自:https://blog.csdn.net/shfqbluestone/article/details/37723517

在上个教程中我们创建了一个 axis 服务端的 web service 的例子,今天我们来创建一个客户端的例子。

准备工作:IntellJ IDEA 、一个 web sdervice 服务端 demo ,见我的上个教程:axis 服务端例子:http://blog.csdn.net/shfqbluestone/article/details/37610601

wiki:.jetbrains 官方教程 http://wiki.jetbrains.net/intellij/Developing_a_simple_Apache_Axis_WebService

首先我们创建一个 Java project ,如图:

点 next :

然后选择工程种类的最后一种: WebServices Client ,然后在右边的 Version 中选择 Apache Axis ,然后点 Finish。

IDE 会根据 wsdl 文件自动产生 Java 代码,首先我们得告诉 IDE wsdl 文件的地址。我们选择在上一个教程中创建的那个 web service 服务端的 wsdl 文件,然后点 OK 。

勾选 Generate TestCase IDE会为我们生成测试用例,再点 OK 。

IDE 会为我们生成一些类,但这些类可能有部分错误,需要我们手动修改。

有些错误是因为包没有导入,可以利用 IDE 的自动提示,按 alt + enter 自动完成修复。

修改完毕以后,HelloWorldClient 类就是这个样子的:

    package example;

import mypackage.HelloWorldServiceLocator;
import mypackage.HelloWorld_PortType; /**
* Created by lenovo on 14-7-12.
*/
public class HelloWorldClient {
public static void main(String[] argv) {
try {
HelloWorldServiceLocator locator = new HelloWorldServiceLocator();
HelloWorld_PortType service = locator.getHelloWorld();
// If authorization is required
//((HelloWorldSoapBindingStub)service).setUsername("user3");
//((HelloWorldSoapBindingStub)service).setPassword("pass3");
// invoke business method
service.sayHelloWorldFrom("shfq");
} catch (javax.xml.rpc.ServiceException ex) {
ex.printStackTrace();
} catch (java.rmi.RemoteException ex) {
ex.printStackTrace();
}
}
}

还有单元测试类也会报错,是因为没有导入 Junit jar 包。有个解决方法,可以很快的导入 jar 包,比如在测试类中的任何一个方法上面加一个注解 @Test , IDE就会发现缺少 jar ,然后根据错误提示,把 Junit 加入到 classpath 中,就 OK 了。到此为止, axis 客户端的代码算是完成了。

这时候,我们首先启动在上一个教程中写好的 axis 服务端的 tomcat ,然后,再运行 HelloWorldClient 中的 main 方法,

这时候在服务端的控制台会打印出一句话:Hello, world, from shfq

其中的“shfq”是在 HelloWorldClient 类中的 main 方法中的 service.sayHelloWorldFrom("shfq"); 中传给服务端的字符串。至此, axis web service 客户端、服务端教程都已经完毕了,搭建一个 demo 很容易,难的是理解背后的协议、原理。背后的东西还有很多,我不熟悉的,准备花一段时间学习,最后会把学到的东西给整理出来。如果在创建 axis web service 的过程中遇到什么问题,可以给我留言。

最新文章

  1. ACE bus
  2. ClockPicker – 时钟风格 Bootstrap 时间选择器
  3. 【Tomcat】直接启动tomcat时为tomcat指定JDK 而不是读取环境变量中的配置
  4. Redis的几个认识误区
  5. bootstrap-table 加载不了数据问题总结
  6. 云端 Linux下安装 Java
  7. Android核心分析 之十Android GWES之基本原理篇
  8. 记一次js中和php中的字符串长度计算截取的终极问题和完美解决方案
  9. CImg 读取jpg, png ,tif 等格式失败解决方案
  10. 逗号" , "表达式
  11. 界面底部Tab实现
  12. C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
  13. await和async更多的理解
  14. iOS动画学习 -隐式动画
  15. Spring Boot(一):环境搭建,建立简单项目
  16. 用HTML+CSS编写一个计科院网站首页的静态网页
  17. mysql 命令语句
  18. Linux 文件特殊权限_013
  19. [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架【翻译】
  20. 【python51--__name__属性】

热门文章

  1. 物理机安装CentOS7
  2. Mean, Median, Mode, Range, and Standard Deviation
  3. es-for-Laravel: Composer 包安装, Laravel 最简单的方式操作 Elasticsearch
  4. CloudStack云基础架构的一些概念
  5. MySQL锁定状态查看命令
  6. JavaWeb利用cookie记住账号
  7. 12、NIO、AIO、BIO一
  8. 7.配置文件mocha.opts
  9. Nginx下部署TP5项目
  10. AngularJs轻松入门(二)数据绑定