`
pocketduck
  • 浏览: 19708 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一次的webservice调用

阅读更多

项目当中需要调用对方的发布的的一个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调用圆满结束

分享到:
评论

相关推荐

    webService调用实例 Demo

    【描述】:“内附有两个工程 简单的可运行的Demo 适合初学者 (附:本人也是第一次弄)” 这个描述表明,你将获得两个不同的工程实例,这两个实例都是可以运行的。对于初学者来说,这是非常有价值的,因为你可以...

    web service第一次启动慢

    这个预热过程可能会使得第一次调用稍显缓慢。 4. 应用程序启动过程中的其他因素:除了web service本身,WinForm应用程序在首次运行时也可能需要初始化各种组件、资源加载等,这些都可能导致整体启动时间变长。 5. ...

    delphi调用Java webservice实例

    Delphi是一款强大的Windows应用程序开发工具,而Java WebService则是一种基于标准的,跨平台的远程调用技术。下面将详细阐述这个主题。 一、Java WebService简介 Java WebService是通过SOAP(Simple Object Access ...

    C#提高webService接口调用的性能

    客户端调用服务器WebService接口可以更加快速。

    WINCE连接WEBSERVICE第一次很慢的解决办法

    这个问题通常是由于多种因素引起的,包括网络延迟、SSL握手时间、DNS解析、缓存策略以及WinCE系统本身对Web服务调用的优化不足。下面将详细讨论这些问题及相应的解决办法。 1. **网络延迟**:由于WINCE设备可能在...

    我编程第一个webservice程序

    在本例中,你创建了自己的第一个Web服务程序,并成功地在IIS(Internet Information Services)上进行了部署和测试。以下是关于这个过程的一些关键知识点: 1. **Web服务(Web Service)**:Web服务是一种通过SOAP...

    .net动态调用php的webservice例子[含源码]

    第一次做 .net来动态调用 php web服务。内含nusoap 写的一个简单php服务端,客户端采用.net写的一个动态调用类 相关帖子 http://topic.csdn.net/u/20090819/19/94f3754b-7635-4377-8dc4-08cab4cd1aad.html?87815 ...

    MULE开发实例1---并行调用多个webservice接口

    你可以选择不同的策略来合并这些响应,例如聚合所有的响应或仅返回第一个响应。 7. **设置Error Handling**:确保对可能的错误情况如网络问题或Web服务不可用进行适当的错误处理,可以通过添加异常策略来实现。 8....

    泛微E9二开资源包,webService包含细节说明

    泛微E9是一款专业的协同办公系统,其二次开发资源包为开发者提供了丰富的工具和文档,以便于自定义和扩展系统功能。"webService包含细节说明"指出,此资源包特别关注了基于Web服务的集成与扩展,这在企业级应用中至...

    andriod调用webservice源代码

    DOM一次性加载整个XML文档,适合小规模数据;SAX是事件驱动,按需解析,适合大文件;Pull解析器轻量级,适用于内存有限的移动设备。 5. **异步处理** 由于调用Web服务可能耗时较长,不应在主线程中执行,否则可能...

    WebService使用,客户机+服务WebService+SqlServer2005,附有说明

    6. **返回**:服务端将响应消息通过HTTP回传给客户端,完成一次通信。 六、学习重点 这个项目中的详细说明可能涵盖如何创建和部署WebService,如何在C#代码中实现数据库操作,以及如何在客户端调用WebService。通过...

    android 访问webService Demo

    - 对于大量数据,考虑使用Paging库分页加载,避免一次性加载过多数据导致内存问题。 总结,这个“android 访问webService Demo”应该包含了Android调用Web Service的基本流程,无论是SOAP还是RESTful,都提供了清晰...

    WebService第N次亲密接触

    【WebService第N次亲密接触】 WebService是一种基于互联网的、平台无关的分布式应用程序交互技术,它允许不同的系统之间通过网络进行数据交换和业务协同。在Web服务的世界里,XML(Extensible Markup Language)...

    EJB WebService Demo

    1. **Session Beans**: 代表客户端的一次会话,可以是无状态(Stateless)或有状态(Stateful)。无状态Session Beans不保存任何关于客户端的信息,而有状态Session Beans则可以记住客户端的状态信息。 2. **...

    基于axis2的webservice

    - **同步调用**:客户端发送请求,等待服务端返回响应,完成一次交互。 - **异步调用**:客户端发送请求后不等待响应,而是通过回调机制处理服务端的返回。 6. **WebService目录结构分析** 压缩包中的...

    使用SOAPUI对WEBSERVICE进行性能测试.doc

    例如,假设一个 WSDL 定义了两个方法,第一个测试步骤调用了第一个方法,返回 authorid,作为第二个方法的输入参数(第二个步骤)。可以在第一个测试步骤和第二个测试步骤之间添加一个 property transfer 的步骤,...

    webservice文件上传下载.zip

    3. **流式传输**:为了处理大文件,服务器通常会采用流式传输技术,逐步发送文件内容,而不是一次性加载整个文件到内存。 四、获取文件名称数量 1. **目录遍历**:服务器端可以通过遍历特定文件夹,统计其中的文件...

    python使用suds调用webservice接口的方法

    最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds  mac: sudo pip install suds  linux: easy_install suds 也可以通过去官网...

    cxf https webservice

    1. **Apache CXF**:CXF是一个强大的Java Web服务框架,支持WSDL第一和第二范式、JAX-WS、JAX-RS等标准。它提供了多种服务端和客户端的实现,包括SOAP、REST、XML/JSON等,方便开发者构建和使用Web服务。 2. **...

    泛微ecology 8的java action webservice、定时任务、jquery开发的demo,前端后端完整项目

    这是一个精品、经典项目,可以适用于快速二次开发,方便对接企业内部的ERP、HR、MES等平台,内容包括: 数据源 DataSource介绍建立 流程提交前执行自定义java action 计划任务 CronJob webservice建立和调用 前端...

Global site tag (gtag.js) - Google Analytics