Axis2 调用 流程

Axis2看了一些资料 自己总结下

客户端调用接口流程:首先是先

 // 创建request SOAP包工厂 fac。 创建 请求soap 包的工厂
    private static OMFactory fac = OMAbstractFactory.getOMFactory();

//先通过fac工厂 创建 sopa的 命名空间,"tns" 有看别人提到过说是服务名,但是"" 或者填任何都可以,只要不和//已经的变量名重复,如果和调用接口 重复会报错,提示已存在

OMNamespace omNs = fac.createOMNamespace("http://WebXml.com.cn/","tns");

  //再通过fac工厂 创建 所需要 请求方法OMElement  对象

String methodName = "getWeatherbyCityName";//调用的方法名

OMElement  method = fac.createOMElement(methodName,omNs);

//然后 给 方法对象 添加方法参数名称 和请求的参数值

String[] args = new String[]{"theCityName"};

String city = "杭州";

String[] vals = new String[]{"city"};

for(int i=0;i<args.length;i++){

    OMNamespace params = fac.createOMNamespace(args[i],omNs);

     params.setText(vals[i]);

     method.addChild(params);

}

//创建 端点引用 EndpointReference 实例对象。并对EndpointReference设置private static EndpointReference targetEpr = new EndpointReference(url);

url为 String url = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx";  是webservice 接口地址。

//然后创建ServiceClient 客户端对象

ServiceClient  client  = new ServiceClient ();

//创建ServiceClient  对象client  的 Options选项

Options options = new Options();

options.setTo(targetEpr);

//在options中设置SOAP包的Action          SOAPAction

String SOAPAction = "http://WebXml.com.cn/getWeatherbyCityName";

options.setAction(SOAPAction);

//options.setProperty(HTTPConstants.CHUNKED, "false");//设置不受限制.  这个据说是不受限制 至少我没遇到要添加这个

//然后给客户端设置opition选项

client .setOptions(options);

//调用接口方法

OMElement result = client.sendReceive(method);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值