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

axis解析webxml网站提供的天气、火车有关问题

2013-08-21 
axis解析webxml网站提供的天气、火车问题本人一菜,想实现天气、火车调用,从网上查了用axis的例子。但是只有返

axis解析webxml网站提供的天气、火车问题
本人一菜,想实现天气、火车调用,从网上查了用axis的例子。
但是只有返回 一维字符串数组 才能够解析成功。
像是下面这种,DataSet的却不行,报错 序列化怎么怎么样..
还有这种..更是不知道怎么办了
返回数据:DataSet,Item.(TrainStation)=车站名称、Item.(ArriveTime)=到站时间、Item.(StartTime)=发车时间、Item.(KM)=里程(KM)

个人觉得是返回类型的原因,但是axis的类型都不懂,不知道怎么办,求大神指点。
 call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);

这是源码,此方法调用不需要传参
目的是获得中国省份、直辖市、地区;国家名称(国外)和与之对应的ID

String cityCode = "北京";
 String userId = "";
 // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性
 // webservice路径
 // 这里后面加不加 "?wsdl" 效果都一样的
 String endpoint = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";
 String[] res = null;

 // 查询城市天气的接口方法名
 String operationName = "getRegionDataset";
 // 定义service对象
 Service service = new Service();
 // 创建一个call对象
 Call call = (Call) service.createCall();
 // 设置目标地址,即webservice路径
 call.setTargetEndpointAddress(endpoint);
 // 设置操作名称,即方法名称
 call.setOperationName(new QName("http://WebXml.com.cn/", operationName));
 // 设置方法参数
// call.addParameter(new QName("http://WebXml.com.cn/", "theCityCode"),
//         org.apache.axis.encoding.XMLType.XSD_STRING,
//         javax.xml.rpc.ParameterMode.IN);
// call.addParameter(new QName("http://WebXml.com.cn/", "theUserID"),
//         org.apache.axis.encoding.XMLType.XSD_STRING,
//         javax.xml.rpc.ParameterMode.IN);
 // 设置返回值类型
 // 对于返回是字符串数组的返回类型只有这两种可行

  call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);
 call.setUseSOAPAction(true);
 call.setSOAPActionURI("http://WebXml.com.cn/" + operationName);

  call.invoke(new Object[] { });
axiswebService?java? axis webservice java 天气


[解决办法]
DataSet是.net的特有类型,java没有,无法序列化,你应该自己写解析方法。
可以参考这篇文章处理dataset,http://heweiya.iteye.com/blog/39025

热点排行