- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WebService二2003.ppt
利用Java调用.NET的Web服务 之Web服务 -5 Integer i = new Integer(1); Integer j = new Integer(2); String endpoint=http://localhost/MyServices/WebServiceTest/SumService.asmx; Service service = new Service(); Call call =(Call)service.createCall(); call.setTargetEndpointAddress(new .URL(endpoint)); call.setOperationName(new QName(/,IntAdd)); call.addParameter(“i,org.apache.axis.encoding.XMLType. XSD_INT ,javax.xml.rpc.ParameterMode.IN); call.addParameter(“j,org.apache.axis.encoding.XMLType. XSD_INT ,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT); call.setUseSOAPAction(true); call.setSOAPActionURI(epayal.logical); Integer k = (Integer)call.invoke(new Object[]{i,j}); System.out.println( result is + k.toString() + .); 利用Java调用.NET的Web服务 之Web服务 -6 } catch (Exception e) { System.err.println(e.toString()); } } } 4. 编译、执行程序运行结果返回“3”。 说明java调用.net的web服务正确。 总结 Web服务里的状态信息可以通过Session和Application对象来实现 Web服务可以实现异步调用 Web服务最大的优点就是跨语言调用,可以使用一种语言编写Web服务而使用另一种语言进行调用 案例 通过WebService实现文件的上传下载 HandsOn 企业级应用和WebService二 教学目标 掌握Web服务里的状态传递 掌握Web服务的异步调用 了解Web服务的跨语言调用 工作任务 1. 利用Web服务实现两个页面之间的信息传递 2. 使用winform应用程序调用Web服务 3. 用java调用.net创建Web服务 Web服务的状态-1 Web Service由于采用了HTTP作为缺省通讯协议,使得Web Service可以透过各个企业、公司的防火墙,真正实现了跨internet的分布式计算。也因为HTTP,使得Web Service在本质上存在一些先天的限制,就像其它的WEB应用程序一样。HTTP是一种无状态的(STATELESS)通讯协议,所以在HTTP之上的Web Service如何保持“状态(STATE)”就成为一个有趣的话题。 请看如下代码: localhost.Service aa = new localhost.Service(); aa.setname(wanglaoshi); aa.getname(); Web服务的状态-2 看起来你只创建了一个Service实例(Object),并两次调用它的函数。但实际情况却非如此。你没有创建一个Service实例,你只是创建了Service类的代理类的实例(Proxy Class)。 Service类的实例是在服务器端创建的,而且是两次。你在客户端两次的函数调用在服务器端生成了两个实例,每个实例响应一次函数调用。两个实例之间没有任何联系,当你把第一个实例的name设为wanglaoshi,对于第二个实例来讲是全然无知的。所以调用“aa.getname();”结果仍然是空。 Web服务的状态-3 Web Service的实例创建是属于REMOTING中单一调用方式的(SINGLE CALL)。意思是每一次的函数调用都会在服务器端创建一个新的实例。 在默认情况下,.NET下的WebService是无状态的。那么如何解决保存“状态”呢? 可以用ASP.NET提供的状态管理那就是Session和Application。这使得WebService的状态管理变得简单了。 Session对象中存储的数据只有在WebMethod属性的EnableSessi
文档评论(0)