转自: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 的过程中遇到什么问题,可以给我留言。

4.菜鸟教你一步一步开发 web service 之 axis 客户端创建的更多相关文章

  1. 3.菜鸟教你一步一步开发 web service 之 axis 服务端创建

    转自:https://blog.csdn.net/shfqbluestone/article/details/37610601 第一步,新建一个工程,如图: 选 Java 写一个工程名,选择好工程路径 ...

  2. 无需付费,教你IDEA社区版中开发Web项目(SpringBoot\Tomcat)

    1.IDEA 版本介绍 最近有小伙伴私信我说 IDEA 破解怎么总是失效?难道就没有使用长一点的吗... 咳咳,除了给我留言「激活码」外,或许社区版可能完全满足你的需求. 相信有挺多小伙伴可能不清楚或 ...

  3. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  4. 一步一步教你将普通的wifi路由器变为智能广告路由器

    一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...

  5. 一步一步教你使用Git

    一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...

  6. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)

    我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...

  7. 使用WPF教你一步一步实现连连看

    使用WPF教你一步一步实现连连看(一) 第一步: 问题,怎样动态的建立一个10*10的grid(布局) for (int i = 0; i < 10; i++){ RowDefinition r ...

  8. 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app

    一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...

  9. Ace教你一步一步做Android新闻客户端(一)

    复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...

随机推荐

  1. 【转载】python学习之 字符串前'r'的用法

    文章转载:https://www.cnblogs.com/cyiner/archive/2011/09/18/2180729.html 在打开文件的时候open(r'c:\....') 加r和不加'' ...

  2. linux操作---cd

    cd命令用于切换工作路径,格式是cd [选项][参数]: [选项] -p  如果切换的工作目录是一个符号连接,直接切换到符号连接指向的目标目录: -L  如果切换的工作目录是一个符号连接,直接切换到符 ...

  3. SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)

    上一篇SpringBoot实战(二)Restful风格API接口中写了一个控制器,获取了前端请求的参数,现在我们就参数的获取与校验做一个介绍: 一:获取参数 SpringBoot提供的获取参数注解包括 ...

  4. Json学习总结(2)——Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它 ...

  5. wget 升级

    漏洞描述: Wget是GNU计划开发的一套用于在网络上进行下载的自由软件,是Unix/Linux系统最常用的下载工具,支持通过HTTP.HTTPS以及FTP这三个最常见的TCP/IP协议下载. Wge ...

  6. 生成apk文件遇到的编译问题error: format not a string literal and no format arguments

    编译错误时使用的android-ndk为r9的版本号.报下面错误: "Compile++ thumb : cocosdenshion_static <= SimpleAudioEngi ...

  7. Ubuntu 10.04 右上角网络管理图标消失的解决的方法

           那个显示网络状态的那个图标.叫做:network-manager.假设是有线网络连接的话.是上下两个箭头,假设是无线网络的话.是一个发射信号的形状. sudo gedit /etc/Ne ...

  8. sublime搜索和替换--多文件搜索替换

    Search and Replace - Multiple Files Searching To open the search panel for files, press Ctrl + Shift ...

  9. Android 提示: The connection to adb is down, and a severe error has occured.

    今天早上打开Eclipse,一直提示 The connection to adb is down, and a severe error has occured,无法执行程序.重新启动Eclipse. ...

  10. bzoj1016: [JSOI2008]最小生成树计数(kruskal+dfs)

    1016: [JSOI2008]最小生成树计数 题目:传送门 题解: 神题神题%%% 据说最小生成树有两个神奇的定理: 1.权值相等的边在不同方案数中边数相等  就是说如果一种方案中权值为1的边有n条 ...