首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

自各儿写axis2调用webservice的代码

2012-12-26 
自己写axis2调用webservice的代码首先当然要下载axis2的JAR包,导入工程,这里我们可以从网上下载eclipse插

自己写axis2调用webservice的代码

首先当然要下载axis2的JAR包,导入工程,这里我们可以从网上下载eclipse插件来自动生成客户端代码,但有些情况下,比如需要调用大量的接口,如果采用这种方式的话管理起来将会很麻烦,这里介绍一下怎么来自己写客户端调用接口。

?

import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.ServiceClient; public class CallWebservice {     private void invokeWebService(){         try{             //定义接口地址,这里最好把结尾的?wsdl去掉             String soapBindingAddress = "http://localhost:9139/axis2/services/test";             EndpointReference endpointReference = new EndpointReference(soapBindingAddress);             //创建一个OMFactory,下面的namespace、方法与参数均需由它创建             OMFactory factory = OMAbstractFactory.getOMFactory();             //创建命名空间,如果你调用的的WebService指定了targetNamespace这个属性的话,这儿要写上             OMNamespace namespace = factory.createOMNamespace("http://www.wbw.com", "");             //创建参数,可以为多个,这里的命名要与wsdl文件里的命名一致             OMElement  nameElement = factory.createOMElement("ReqMsg", namespace);             //把变量绑定到参数,也可以用nameElement.setText("test");             nameElement.addChild(factory.createOMText(nameElement, "test"));             //创建方法,对应接口方法名,其中"test"为方法名             OMElement method = factory.createOMElement("test", namespace);             //把参数绑定到方法             method.addChild(nameElement);             //创建客户端实例             ServiceClient sender = new ServiceClient();             //绑定EndpointReference             sender.getOptions().setTo(endpointReference);             //这里设定为不检查可以避免EOF错误提示             sender.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,             Boolean.FALSE);             method.build();             //看看发送的是什么             System.out.println(method.toString());             //发送并得到结果,至此,调用成功,并得到了结果             OMElement result = sender.sendReceive(method);             //把结果转化为字符串查看结果             System.out.println(result.toString());         }         catch (AxisFault ex){             ex.printStackTrace();         }     }     public static void main(String[] args){         CallWebservice cw = new Test2();         cw.invokeWebService();     } } 

?

如在调用中出现问题,欢迎留言讨论

?

热点排行