浏览 6524 次
锁定老帖子 主题:第一次的webservice调用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-24
最后修改:2009-07-24
项目当中需要调用对方的发布的的一个webservice,需求比较简单,只是调用对方一个发布好的webservice Service service = new Service(); Call call=(Call)service.createCall(); call.setTargetEndpointAddress("http://192.168.0.35:8080/webservice-model/services/BookService")); //经过测试是否加QName这个结果都一样,不知道具体有什么用 //call.setOperationName(new javax.xml.namespace.QName("http://risesoft.test","getBook21")); //远程调用的方法 all.setOperationName("echoString"); // call.addParameter(certificateString, XMLType.XSD_STRING, ParameterMode.IN); // call.addParameter(appid, XMLType.XSD_STRING, ParameterMode.IN); String result=(String)call.invoke(new Object[]{certificateString,appid}); 第一次请求url加上了"?wsdl"http://192.168.0.35:8080/webservice-model/services/BookService?wsdl Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new URL("http://172.24.15.217/PMSServicejn/RightService.asmx")); call.setSOAPActionURI("http://www.bjld.gov.cn/GetUserRelyIDByCertificate"); call.setOperationName(new QName("http://www.bjld.gov.cn/", "GetUserRelyIDByCertificate")); //传两个参数,好像asp的系统必须指定namespace,所以就这么写了 call.addParameter(new QName("http://www.bjld.gov.cn/", "CertificateString"),XMLType.XSD_STRING,Class.forName("java.lang.String"),ParameterMode.IN); call.addParameter(new QName("http://www.bjld.gov.cn/","appid"),XMLType.XSD_STRING,Class.forName("java.lang.String"),ParameterMode.IN); call.setReturnType(XMLType.XSD_STRING); caid = (String) call.invoke(new Object[]{certificateString, Config.getString("appid")}); 原来上次不明白的那个qname是指定命名空间的,好像.net的系统必须指定命名空间呢,而且SOAPAction也是必须的,所以传参数那里显着比开始复杂多了,另外对方要的soap如下 POST /PMSServicejn/RightService.asmx HTTP/1.1 Host: 172.24.15.217 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.bjld.gov.cn/GetUserRelyIDByCertificate" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetUserRelyIDByCertificate xmlns="http://www.bjld.gov.cn/"> <CertificateString>string</CertificateString> <appid>string</appid> </GetUserRelyIDByCertificate> </soap:Body> </soap:Envelope> 至此webservice调用圆满结束 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |