WebService大讲堂之Axis2(1):用POJO实现0配置的WebService - 编程入门网
可以在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的代码:
其中-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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |