Axis 生成客户端client stub文件
[转自] http://blog.csdn.net/qiao000_000/article/details/5568442
开发前,有个同事先给我们不熟悉Web Service的程序员进行了一些培训,我才知道原来以前的Web Service都是可以自动生成代码的,而且也不难,试了一个下午客户端和服务器端的Web Service代码就都调试通过了,真不错。
为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。
一、Axis环境的安装
1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
2、到 http://xml.apache.org 网站下载Axis安装包。
3、将Axis相关包文件放在WEB-INF/lib目录下。
4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface (DII)
2、Dynamic Proxy方式
3、Stubs方式
前两种方式我就不介绍了,同事告诉我他们自己都不使用前两种方式,他们建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。注意,我自己的Java源代码是放在D:/workspace/test/目录下,Axis相关包文件放在D:/workspace/test/WEB-INF目录下。
二、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
package server;
public class SayHello
{
public String getName(String name)
{
return "hello "+name;
}
}
2、编写wsdd文件
deploy.wsdd文件内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello" provider="java:RPC">
<parameter name="className" value="server.SayHello.getName"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3、发布服务:
编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:
set Axis_Lib=D:/workspace/test/WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services
就会显示服务列表。
4、生成客户端client stub文件
在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
编写一个WSDL2Java.bat文件,其内容如下:
set Axis_Lib=D:/workspace/test/WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:/workspace/test/src
set Package=server.SayHello
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl
执行这个批处理文件就可以生成client stub.
生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .
5、编写客户端程序,编译并执行
下面是一段junit测试客户端代码。
import java.net.URL;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestWSClient extends TestCase {
public TestWSClient(String string) {
super(string);
}
public void SayHelloClient() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
SayHello_PortType client = service.getSayHello() ;
String retValue = client.getName("clientname");
System.out.println(retValue);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestWSClient("SayHelloClient"));
return suite;
}
}
至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。
Axis 生成客户端client stub文件的更多相关文章
- (二)CXF之用CXF官方工具生成客户端Client
一.CXF工具的下载与使用 登录CXF官网:http://cxf.apache.org/download.html 下载,本系列使用的是3.1.5版本: 添加path环境变量 二.案例 2.1 发布w ...
- webservice 的wsdl文件生成客户端java类
提供两个方法: 第一个: 发布webservice项目后, 地址栏地址 http://localhost:8888/lxitedu.webservice.cxf-ch2/services/userS ...
- 用内存流 文件流 资源生成客户端(Delphi开源)
正文:很多木马生成器就是用的内存流和文件流生成客户端的,废话不多说了,代码如下: unit Main; interface usesWindows, Messages, SysUtils, Varia ...
- java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例
1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...
- (转)wsdl文件用SoapUI快速创建WebService,CXF生成客户端代码
原文地址:http://blog.csdn.net/fjekin/article/details/62234861 一.前言 最近项目接触到2C的很多接口,提供接口文档和WSDL文件,一开始测试接口都 ...
- Eclipse+Axis自动生成Web Service WSDL文件
JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) 首先创建一个web工程,创建过程如下: 如果选择Apache Tomcat v5.5, ...
- 根据wsdl的url,使用axis1.4生成客户端,并且对webservice进行调用(转)
根据wsdl的url,使用axis1.4生成客户端,并且对webservice进行调用 axis1.4下载地址 1.到www.apache.org上去下载axis-bin-1_4.zip,如要关联源代 ...
- 使用kbmmw 生成客户端delphi函数原型
前面我们讲了使用swagger 生成java,php 的客户端调用函数原型. 对于delphi,其实很遗憾,不能直接生成客户端函数原型代码. 不要紧,解铃还须系铃人,既然是kbmmw 自己生成的,我们 ...
- 根据wsdl,axis2工具生成客户端代码
根据wsdl,axis2工具生成客户端代码 步骤: 1,下载axis2版本http://axis.apache.org/axis2/java/core/download.html 2,下载完成后解压, ...
随机推荐
- PHP加密与解密
password_hash ( string $password , integer $algo [, array $options ] ) 加密,生成60位得字符串 $algo:一个用来在散列密码时 ...
- Python基础 之 int、bool、str、列表、元组、字典
数据类型 数据类型划分:可变数据类型 不可变数据类型 不可变数据类型:元组.bool.int (本身不可更改).str (可哈希) 可变数据类型:列表list.字典dict .集 ...
- WCF把书读薄(4)——事务编程与可靠会话
WCF把书读薄(3)——数据契约.消息契约与错误契约 真不愧是老A的书,例子多,而且也讲了不少原理方面的内容,不过越读越觉得压力山大……这次来稍微整理整理事务和可靠会话的内容. 十八.事务编程 WCF ...
- HDU 3724 Encoded Barcodes (Trie)
题意:给n个字符串,给m个询问,每个询问给k个条形码.每个条形码由8个小码组成,每个小码有相应的宽度,已知一个条形码的宽度只有2种,宽的表示1,窄的表示0.并且宽的宽度是窄的宽度的2倍.由于扫描的时候 ...
- 深数据 - Deep Data
暂无中文方面的信息,E文的也非常少,原文连接: A lot of great pieces have been written about the relatively recent surge in ...
- laravel中get方式表单提交后, 地址栏数据重复的问题
csrf_field这个要放form表单下面第一行的位置
- C# System.Threading.Timer 定时器
前提: 需要引入 System.Threading: 描述: 在很多时间我们都需要进行延迟执行,或是定时执行一些指定业务,这个时候使用 Timer 是最合适的,而且 Timer 是Cpu 级别处理对 ...
- CentOS 网络操作
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储 ...
- 「Luogu 1471」 方差
题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. 输入输出 ...
- linux------深入理解linux内核
linux内核用到了很多数据结构,这些数据结构都是为了提高某些方面的效率. 内核分配给进程的虚拟地址空间由以下内存区组成: 程序的可执行代码 程序的初始化数据 程序的未初始化数据 初始程序栈(即用户态 ...