快速业务通道

WebService大讲堂之Axis2(1):用POJO实现0配置的WebService - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
可以在Eclipse的工 程中引用Axis2发行包的lib目录中的所有jar包。

2.在本例中使用了RPCServiceClient类的invokeBlocking方法调用了WebService中的方法。 invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名;第二个参 数表示要调用的WebService方法的参数值,参数类型为Object[];第三个参数表示WebService方法的返回 值类型的Class对象,参数类型为Class[]。当方法没有参数时,invokeBlocking方法的第二个参数值不能 是null,而要使用new Object[]{}。

3.如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法,该方 法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同。

4.在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是 <wsdl:definitions>元素的targetNamespace属性值,下面是SimpleService类生成的WSDL文件的代 码片段:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 

xmlns:ns1="http://org.apache.axis2/xsd"
xmlns:ns="http://ws.apache.org/axis2" 

xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 

xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://ws.apache.org/axis2">
    <wsdl:types>
         ... ...
    </wsdl:types>
    ... ...
</wsdl:definitions>

WebService大讲堂之Axis2(1):用POJO实现0配置的WebService(5)

时间:2011-08-13 BlogJava 哈佛校训

四、用wsdl2java简化客户端的编写

也许有很多读者会说“有没有搞错啊,只调用两个WebService方法用要写这么多代码,太麻烦了”。

不过幸好Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。 wsdl2java.bat命令可以在<Axis2安装目录>"bin目录中找到。在使用wsdl2java.bat命令之前需要 设置AXIS2_HOME环境变量,该变量值是<Axis2安装目录>。

在Windows控制台输出如下的命令行来生成调用WebService的代码:

%AXIS2_HOME%\bin\wsdl2java -uri http://localhost:8080/axis2/services/SimpleService?wsdl -p client -s -o stub

其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的 Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在 当前目录下多了个stub目录,在."stub"src"client目录可以找到一个SimpleServiceStub.java文件,该 文件复杂调用WebService,读者可以在程序中直接使用这个类,代码如下:

package client;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class StubClient
{
    public static void main(String[] args) throws Exception  
    {
        SimpleServiceStub stub = new SimpleServiceStub();
        SimpleServiceStub.GetGreeting gg = new SimpleServiceStub.GetG

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号