package com.sinosoft.webservice; import java.util.Date; 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.axiom.soap.soAP11Constants; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; import org.apache.axis2.transport.http.HTTPConstants; import org.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties; public class WeatherAxiomClient { private static EndpointReference targetEPR = new EndpointReference("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"); private static OMFactory fac = OMAbstractFactory.getoMFactory(); static OMNamespace omNs = fac.createOMNamespace("http://WebXml.com.cn/","tns"); public static void main(String args[]) throws AxisFault{ Date start=new Date(); System.out.println("start:"+start); ServiceClient sender = new ServiceClient(); sender.setoptions(buildOptions("http://WebXml.com.cn/getWeatherbyCityName")); OMElement result = sender.sendReceive(buildParam("getWeatherbyCityName",new String[]{"theCityName"},new String[]{"上海"})); System.out.println(result); Date end=new Date(); System.out.println("end:"+end); System.out.println("between:"+(end.getTime()-start.getTime())); } /** * @see 调用webservice得到天气预报支持的城市 * @return */ public static OMElement buildParam(String method,String[] arg,String[] val) { OMElement data = fac.createOMElement(method,omNs); for(int i=0;i<arg.length;i++){ OMElement inner = fac.createOMElement(arg[i],omNs); inner.setText(val[i]); data.addChild(inner); } return data; } /** * @see 设置连接属性 * @return */ public static Options buildOptions(String action){ Options options = new Options(); options.setSoapVersionURI(SOAP11Constants.soAP_ENVELOPE_NAMESPACE_URI); //options.setSoapVersionURI(action); options.setAction("http://WebXml.com.cn/getSupportCity"); options.setTo(targetEPR); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setProperty(HTTPConstants.CHUNKED,"false");//设置不受限制. options.setProperty(HTTPConstants.PROXY,buildProxy()); options.setProperty(Constants.Configuration.HTTP_METHOD,HTTPConstants.HTTP_METHOD_POST); // options.setAction(action); return options; } /** * @see 设置代理属性 * @return */ public static ProxyProperties buildProxy(){ ProxyProperties proxyProperties=new ProxyProperties(); proxyProperties.setProxyName("172.19.18.22"); proxyProperties.setProxyPort(8080); return proxyProperties; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。