项目当中需要调用对方的发布的的一个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
结果报错org.xml.sax.SAXException: Bad envelope tag: definitions
后来google了一下去掉"?wsdl"就ok了,不知道具体原因,一个同事说可能是weblogic不需要吧!
至此第一次的webservice调用圆满成功!
续:
后来去客户现场调试,对方是asp系统,又碰到不少问题,最后搞定,代码如下
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调用圆满结束
分享到:
- 2009-07-24 16:07
- 浏览 1725
- 评论(0)
- 论坛回复 / 浏览 (0 / 6525)
- 查看更多
相关推荐
【描述】:“内附有两个工程 简单的可运行的Demo 适合初学者 (附:本人也是第一次弄)” 这个描述表明,你将获得两个不同的工程实例,这两个实例都是可以运行的。对于初学者来说,这是非常有价值的,因为你可以...
这个预热过程可能会使得第一次调用稍显缓慢。 4. 应用程序启动过程中的其他因素:除了web service本身,WinForm应用程序在首次运行时也可能需要初始化各种组件、资源加载等,这些都可能导致整体启动时间变长。 5. ...
Delphi是一款强大的Windows应用程序开发工具,而Java WebService则是一种基于标准的,跨平台的远程调用技术。下面将详细阐述这个主题。 一、Java WebService简介 Java WebService是通过SOAP(Simple Object Access ...
客户端调用服务器WebService接口可以更加快速。
这个问题通常是由于多种因素引起的,包括网络延迟、SSL握手时间、DNS解析、缓存策略以及WinCE系统本身对Web服务调用的优化不足。下面将详细讨论这些问题及相应的解决办法。 1. **网络延迟**:由于WINCE设备可能在...
在本例中,你创建了自己的第一个Web服务程序,并成功地在IIS(Internet Information Services)上进行了部署和测试。以下是关于这个过程的一些关键知识点: 1. **Web服务(Web Service)**:Web服务是一种通过SOAP...
第一次做 .net来动态调用 php web服务。内含nusoap 写的一个简单php服务端,客户端采用.net写的一个动态调用类 相关帖子 http://topic.csdn.net/u/20090819/19/94f3754b-7635-4377-8dc4-08cab4cd1aad.html?87815 ...
你可以选择不同的策略来合并这些响应,例如聚合所有的响应或仅返回第一个响应。 7. **设置Error Handling**:确保对可能的错误情况如网络问题或Web服务不可用进行适当的错误处理,可以通过添加异常策略来实现。 8....
泛微E9是一款专业的协同办公系统,其二次开发资源包为开发者提供了丰富的工具和文档,以便于自定义和扩展系统功能。"webService包含细节说明"指出,此资源包特别关注了基于Web服务的集成与扩展,这在企业级应用中至...
DOM一次性加载整个XML文档,适合小规模数据;SAX是事件驱动,按需解析,适合大文件;Pull解析器轻量级,适用于内存有限的移动设备。 5. **异步处理** 由于调用Web服务可能耗时较长,不应在主线程中执行,否则可能...
6. **返回**:服务端将响应消息通过HTTP回传给客户端,完成一次通信。 六、学习重点 这个项目中的详细说明可能涵盖如何创建和部署WebService,如何在C#代码中实现数据库操作,以及如何在客户端调用WebService。通过...
- 对于大量数据,考虑使用Paging库分页加载,避免一次性加载过多数据导致内存问题。 总结,这个“android 访问webService Demo”应该包含了Android调用Web Service的基本流程,无论是SOAP还是RESTful,都提供了清晰...
【WebService第N次亲密接触】 WebService是一种基于互联网的、平台无关的分布式应用程序交互技术,它允许不同的系统之间通过网络进行数据交换和业务协同。在Web服务的世界里,XML(Extensible Markup Language)...
1. **Session Beans**: 代表客户端的一次会话,可以是无状态(Stateless)或有状态(Stateful)。无状态Session Beans不保存任何关于客户端的信息,而有状态Session Beans则可以记住客户端的状态信息。 2. **...
- **同步调用**:客户端发送请求,等待服务端返回响应,完成一次交互。 - **异步调用**:客户端发送请求后不等待响应,而是通过回调机制处理服务端的返回。 6. **WebService目录结构分析** 压缩包中的...
例如,假设一个 WSDL 定义了两个方法,第一个测试步骤调用了第一个方法,返回 authorid,作为第二个方法的输入参数(第二个步骤)。可以在第一个测试步骤和第二个测试步骤之间添加一个 property transfer 的步骤,...
3. **流式传输**:为了处理大文件,服务器通常会采用流式传输技术,逐步发送文件内容,而不是一次性加载整个文件到内存。 四、获取文件名称数量 1. **目录遍历**:服务器端可以通过遍历特定文件夹,统计其中的文件...
最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip install suds linux: easy_install suds 也可以通过去官网...
1. **Apache CXF**:CXF是一个强大的Java Web服务框架,支持WSDL第一和第二范式、JAX-WS、JAX-RS等标准。它提供了多种服务端和客户端的实现,包括SOAP、REST、XML/JSON等,方便开发者构建和使用Web服务。 2. **...
这是一个精品、经典项目,可以适用于快速二次开发,方便对接企业内部的ERP、HR、MES等平台,内容包括: 数据源 DataSource介绍建立 流程提交前执行自定义java action 计划任务 CronJob webservice建立和调用 前端...