【转】Axis客户端调用实例
最近一个项目中需要用到调用WebService,实现相关功能,这次调用客户用Axis生成的webService时,也选用Axis来生成客户端实现调用。应用的过程也是学习的过程,下面列出具体的例子,以大家参考,互相学习。
一 .环境配置
首先下载Axis1.x和JDK、TOMCAT。
Axis1.x : http://ws.apache.org/axis/ 我下载的是axis-bin-1_4
JDK1.5和Tomcat5大家可以参考其它安装配置说明
然后解压Axis1.4,然后将axis-1_4\webapps目录下的axis工程拷贝到TOMCAT的webapps目录下
启动TOMCAT服务器,打开localhost:8080/axis/ 如果正确显示,如果显示正确,可以看到如下:
[img]http://dl.iteye.com/upload/attachment/0076/3354/5fddabda-3698-3dba-9c88-d83cdde69c80.jpg[/img]
点击Validation可以查询需要的JAR是不是都存在,如果不存在,可以根据URL进行下载,其实也就只要下这三个jar就可以了activation.jar,mail.jar,xmlsec-1.4.0.jar,分别是下载后拷贝到Tomcat的webapps\axis\WEB-INF\lib目录下。如果JAR都存在了,则显示如下信息:
[img]http://dl.iteye.com/upload/attachment/0076/3357/5c80f1ee-18f6-3329-b023-649b121bf7ee.jpg[/img]
到这步就可以进行Axis的服务端发布WebService了,Web Service服务端开发更多具体方法请参考其它文档。下面是一种介绍
编写JAVA类Hello.java,内容如下:
java 代码
public class Hello{
public String hello(String name){
if(name==null)
name = "";
return "你好"+name+",欢迎来到Web服务的世界!";
}
}
仅此而已,无需编译,将该文件改名为Hello.jws并拷贝到AXIS应用目录Tomcat 的 webapps\axis下。
下面我们就可以测试该Web服务了,打开浏览器并输入刚刚创建的文件名对应的URL地址 http://localhost:8080/axis/Hello.jws 浏览器显示如下结果:
[img]http://dl.iteye.com/upload/attachment/0076/3359/ae0fd090-a922-3cf1-b3d2-e3a744e21d17.jpg[/img]
点击可以查看到WSDL文档,如下
xml 代码
<?xml version="1.0" encoding="UTF-8" ?>
-<wsdl:definitions
targetNamespace="http://localhost:8080/axis/Hello.jws"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://www.w3.org/2000/xmlns/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:impl="http://localhost:8080/axis/Hello.jws"
xmlns:intf="http://localhost:8080/axis/Hello.jws"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:message name="helloRequest">
<wsdl:part name="name" type="xsd:string" />
</wsdl:message>
+ <wsdl:message name="helloResponse">
- <wsdl:portType name="Hello">
- <wsdl:operation name="hello" parameterOrder="name">
<wsdl:input name="helloRequest" message="intf:helloRequest" />
<wsdl:output name="helloResponse" message="intf:helloResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="HelloSoapBinding" type="intf:Hello">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="hello">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="helloRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://DefaultNamespace" />
</wsdl:input>- <wsdl:output name="helloResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:8080/axis/Hello.jws" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="HelloService">
- <wsdl:port name="Hello" binding="intf:HelloSoapBinding">
<wsdlsoap:address location="http://localhost:8080/axis/Hello.jws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
得到WSDL文档后,现在进行AXIS客户端的生成。我们前面安装的AXIS环境中已经包含着这样的工具,它是一个JAVA类,类名为:org.apache.axis.wsdl.WSDL2Java。打开命令行窗口,转到刚才TOMCAT的 webapps\axis 目录下的WEB-INF子目录。确保Tomcat服务已经处于启动状态,键入命令 :
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/Hello?WSDL //这个地方可以是WSDL文件,也可以是WSDL的路径地址
该命令执行的结果是在当前所在目录(TOMCAT的 webapps\axis WEB-INF子目录)下产生一个子目录 ,该目录下有四个JAVA源文件,它们分别是:
Hello.java 定义了Web服务接口,此例中只有一个hello方法。
HelloService.java 定义了用于获取Web服务接口的方法。
HelloServiceLocator.java 接口HelloService的具体实现。
HelloSoapBindingStub.java Web服务客户端桩,通过该类与服务器交互。
这四个JAVA类帮我们处理了大部分的逻辑,我们需要的仅仅是把这些类加到我们的项目然后创建一个我们自己的类来调用它们即可。为此我们新加一个类Main.java,为了方便,让这个类与刚产生的四个类都在同一个包下。内容如下:
java 代码
//Main.java
package localhost.axis.Hello_jws;
public class Main{
public static void main(String[] args) throws Exception{
HelloService service = new HelloServiceLocator();
Hello hello = service.getHello();
System.out.println("Response:"+hello.hello("芒果"));
}
}
在Eclipse或把Java文件编译后执行,即可调用Axis的WebService。实现具体功能。
以上重点在于介绍Axis的客户端调用,对于初学者应该注意Axis环境的设置,和用WSDL2Java生成客户端文件。由于Axis1.x没有什么Eclipse
以上文章大部分转载,看完并学习后,觉得很管用,留在空间,以便日后查阅。
【转】Axis客户端调用实例相关推荐
- axis2 webservice入门学识(JS,Java,PHP调用实例源码)
来源:http://www.myexception.cn/web/952419.html axis2 webservice入门知识(JS,Java,PHP调用实例源码) 背景简介 最近接触到一个银行接 ...
- java .net webservice_Java客户端调用.NET的WebService实例
项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...
- Java 使用Axis实现WebService实例
在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...
- 转载——Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- sorl java 建索引_solr 的客户端调用solrj 建索引+分页查询
在 solr 3.5 配置及应用(一) 讲过一了 solr 3.5的详细配置,本节我们讲利用solr 的客户端调用solr的应用了! 一.利用SolrJ操作solr API 使用SolrJ操作Solr ...
- WCF系列教程之WCF客户端调用服务
1.创建WCF客户端应用程序需要执行下列步骤 (1).获取服务终结点的服务协定.绑定以及地址信息 (2).使用该信息创建WCF客户端 (3).调用操作 (4).关闭WCF客户端对象 二.操作实例 1. ...
- gSoap客户端调用WebService完成后注意内存释放顺序
gSoap客户端调用WebService完成后注意内存释放顺序 [cpp] view plaincopy //Soap资源清理 soap_destroy(soap_sp.get()); //清理反序 ...
- java webservice ssl_[转贴]Java客户端调用Https Webservice
标题: Java客户端调用Https Webservice出处地址:http://hi.baidu.com/sunshibing/blog/item/08f873f0d41e67c37931aa84. ...
最新文章
- Java黑皮书课后题第4章:*4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数。对于不正确的输入数字,提示非法输入
- 多角度让你彻底明白yield语法糖的用法和原理及在C#函数式编程中的作用
- 【MFC系列1】之简单Win32程序
- Android 系统使用USB OTG功能/打开USB Host API功能
- 10W阅读,万人点赞,这套大数据平台建设方法论,到底有什么干货
- Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
- 二叉树三种遍历非递归算法
- 洛谷 P2117 小Z的矩阵
- 计算机软件编程英语词汇集锦
- 招聘senior.net software engineer
- Java打印9*9乘法表
- 直播视频app源码从零搭建流媒体服务器+obs推流直播
- K3 Cloud BOS设计 增加表单按钮 修改状态
- win误删计算机桌面快捷方式,win10系统找回桌面被误删快捷方式的图文教程
- 分销商城系统开发应用概述详解
- c语言字符串字数统计,统计字符数 (C++代码)
- Java 和 || 优先级
- MySql练习---[SQL查询语句练习]
- 团队管理4 | 技术管理如何兼顾技术
- RT-Thread——STM32——FAL库
热门文章
- 程序员是怎样练打字速度
- 基于canny边缘检测、形态学、区域统计实现MATLAB的纽扣计数
- (NO.00004)iOS实现打砖块游戏(十一):一闪一闪亮晶晶,我们都是小星星
- [mfc] SetWindowPos函数
- 关于jieba分词的用法
- 2011年11月11号,2345浏览器,的V1.2版本又增加 什么好玩的新功能!
- 数据看世界|球王马拉多纳因心梗去世!用数据告诉还在996的你,心梗那些事儿!
- 消除pycharm中的波浪线和黄色警告
- 2023最新通信工程毕业设计题目选题推荐100例
- leanote 支持php,【软件周刊】Bootstrap 将不再支持 IE 9;Swoole 2.0 正式版发布,协程特性支持 PHP 7...