使用Axis1.4生成Webservice客户端代码步骤
"本文将介绍如何使用Apache Axis1.4工具生成访问Web服务客户端的代码。" Apache Axis1.4是一个流行的开源框架,用于处理Web服务的客户端和服务器端实现。它提供了强大的功能,包括自动从WSDL(Web服务描述语言)文件生成Java客户端代码,使得开发人员可以轻松地调用远程Web服务。 以下是一个使用Axis1.4生成客户端代码的步骤详解: 1. 首先,你需要从Apache官方网站下载Axis1.4的发行包。你可以访问www.apache.org并搜索axis-bin-1_4.zip,下载并解压缩到本地目录。同时,如果你需要源代码,也可以下载axis-src-1_4.zip。 2. 将解压后的axis-bin-1_4.zip中的lib文件夹中的所有jar文件添加到你的项目类路径中。这些jar文件包含了运行Axis工具所需的库。 3. 接下来,在你的IDE(例如Eclipse)中,打开运行配置(Run Configurations)。创建一个新的Java Application运行配置。 4. 在配置中,设置Main Class为`org.apache.axis.wsdl.WSDL2Java`。这是Axis提供的命令行工具,用于从WSDL生成Java代码。 5. 在"Arguments"选项卡下,设置Program arguments。这里,你需要指定生成代码的输出目录(例如`-o D:\project\FIIS_CRJ_AXIS\dest`),数据源目录(`-d Session`),以及是否启用Session模式(`-S true`)。此外,提供你的WSDL文件的URL或本地路径(例如`http://192.168.1.10:7001/test/test?WSDL`)。 6. 如果你的项目依赖于Spring或其他外部库,如javax.activation和javax.mail,确保在运行时包含这些jar文件。例如,你需要添加com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail-1.4.0.jar到类路径。 7. 生成的客户端代码会包含一个定位器(Locator)类和一个或多个Stub(代理)类。通过定位器实例化Stub,然后调用其方法来与Web服务交互。例如: ```java TraditionalSimplifiedWebServiceLocator locator = new TraditionalSimplifiedWebServiceLocator(); TraditionalSimplifiedWebServiceSoap stub = (TraditionalSimplifiedWebServiceSoap) locator.getTraditionalSimplifiedWebServiceSoap(); System.out.println(stub.toTraditionalChinese("")); ``` 在这个例子中,`toTraditionalChinese()`是Web服务的一个方法,会被调用来执行转换操作。 在实际使用Web服务时,可能还需要进行额外的配置,例如处理session。以下是一个示例,展示如何在调用Web服务前设置session ID: ```java // 获取或设置session ID String sessionId = ...; // 创建一个带有session ID的Header SOAPHeaderElement sessionHeader = new SOAPHeaderElement("http://yournamespace.com", "sessionId", sessionId); // 将header添加到Stub的createCall()返回的Call对象中 protected Call createCall() throws RemoteException { try { Call call = super.createCall(); call.setHeader(sessionHeader); return call; } catch (Exception e) { // 处理异常 } } ``` 以上就是使用Apache Axis1.4生成并使用Web服务客户端代码的基本过程。这个过程允许开发者以编程方式方便地调用远程Web服务,而无需手动编写大量的低级网络通信代码。
lib.rar
1、到www.apache.org上去下载axis-bin-1_4.zip,如要关联源代码就把axis-src-1_4.zip也下载下来。
2、建一个java项目,导入axis-bin-1_4.zip下的lib文件下的所有jar包
3、右键项目/Run As/Run Configurations...
4、然后在Main标签下选择对应的Project以及Main class: org.apache.axis.wsdl.WSDL2Java
5、然后在Arguments标签下的Program arguments:下输入-o Client -d Session -S true D:\project\FIIS_CRJ_AXIS\dest\test.wsdl
其中D:\project\FIIS_CRJ_AXIS\dest\test.wsdl也可以是具体的wsdl路径http://192.168.1.10:7001/test/test?WSDL
6、最后点Run运行――――这时如果报缺少jar包,可以找spring的依赖包,里面有很多,这里还要加入com.springsource.javax.activation-1.1.0.jar和com.springsource.javax.mail-1.4.0.jar。
7、执行上面的操作后会在我们的项目下生成一个Client文件,文件下的内容就是调用webservice的客户端代码
使用:都会有一个本地类 Locator 以及 Soap,创建出这两个就可以调用对应的webservice方法了
例:
TraditionalSimplifiedWebServiceLocator locator = new TraditionalSimplifiedWebServiceLocator();
TraditionalSimplifiedWebServiceSoap stub = (TraditionalSimplifiedWebServiceSoap)locator.getTraditionalSimplifiedWebServiceSoap();
System.out.println(stub.toTraditionalChinese("张三"));
还要一种情况:调用的webservice前要登陆,这种情况怎么处理?
1、先登陆得到sessionId
2、把sessionId设置到header里,找到 Stub类下的createCall()方法
protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
try {
org.apache.axis.client.Call _call = super._createCall();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//设置头信息
SOAPHeaderElement hElement = new SOAPHeaderElement(new QName("sessionInfo"));
SOAPElement sid = hElement.addChildElement("sessionId");
sid.addTextNode(Remote_SessionInfo.getSessionId());
_call.addHeader(hElement);
这样就可以调用webservice了。
org.apache.axis.wsdl.WSDL2Java
-o src
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 0
- 资源: 35
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展