ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:110KB ,
资源ID:9441937      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9441937.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(slice2java编译Printer.ice生成文件说明.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

slice2java编译Printer.ice生成文件说明.doc

1、 参考《Ice 分布式程序设计》 马维达 译,冯立彬的博客 一、 Ice文件定义 Printer.ice文件内容如下: module demo { interface Printer { void printString(string s); }; }; 在命令行终端,进入到Printer.ice文件所在的目录,使用如下命令编译ice文件:slice2java printer.ice。会在目录下面生成一个demo文件夹,里面生成了一些java文件,如下图示: 二、 类图结构 这些文件的类图结构如下: ------------

2、 三、 文件说明 这里对生成的一些文件做些解释,分为两部份,服务端类文件及客户端类文件: 1. 服务器文件 l .java 这个源文件声明在ICE文件中定的接口名称的Java接口,如这里是Printer。 l _Operations.java l _OperationsNC.java 这两个接口文件都会被接口文件_.java继承。

3、 这是两个定义操作的接口文件,每个接口文件中定义了一个操作实现,定义的操作与Slice接口中定义的操作相一致,_PrinterOperationsNC中操作:void printString(String s),只是在_Operations.java中定义的方法多了一个参数“Ice.Current __current”,_PrinterOperations中的操作:void printString(String s, Ice.Current __current),这个参数的作用是可以允许我们访问 “正在执行的请求”和 “服务器中的操作的实现”等信息,通过它可

4、以访问如下对象: 1、adapter 通过adapter 成员,你可以访问负责分派当前请求的对象适配器。通过适配器,你又可以访问它的通信器(通过getCommunicator 操作)。 2、id id 成员提供当前请求的对象标识。如: Ice.Current c Ice.Identity idCopy = new Ice.Identity();//new一个对象标示符idCopy对象 idCopy.name = c.id.name;//通过Current获取当前请求的servant对象标示符的name idCopy.category = c.id.categor

5、y;//对象标示符的category 每个Ice 对象都有一个唯一的对象标识。对象标识是用于把一个对象与其他所有对象区别开来的标识值。Ice 对象模型假定对象标识是全局唯一的,也就是说,在一个Ice 通信域中,不会有两个对象具有相同的对象标识。对象标示Identity只有两个成员,name和category成员。 3、facet 通过facet 成员,你可以访问请求的facet 。 4、operation operation 成员含有正在被调用的操作的名字。注意,这个操作名可 能是Ice::Object上的操作的名字,比如ice_ping 或ic

6、e_isA。如: public class PrinterI extends _PrinterDisp { public void printString(String s, Ice.Current current) { System.out.println(current.operation); } }//输出结果:printString 5、mode mode 成员含有操作的调用模式(Normal、Idempotent,或Nonmutating)。 6、ctx ctx 成员含有这个调用的当前上下文,上下文就是一系列名- 值对,如果客户在上下文中

7、放入一些名- 值对,并在发出调用时使用这个上下文,服务器就将能使用客户所发送的这些名- 值对。 在服务器端,操作的实现可以通过Ice.Current 的ctx 成员访问接收到的Context ,并提取客户所发送的名- 值对。 l _Disp.java 这个文件包含的是服务器端骨架类的定义,所用接口定义都要继承这个东西,这里的接口指供客户端调用的接口,如上图中的PrinterI.java。 l Holder.java 为接口定义的holder 类,是对应Out参数使用的。一般参数都是值传递,这个类的作用是使参数

8、通过引用传递。此类可以存放服务器返回给客户端的信息。 客户端使用out 参数传递holder 类的实例,并在调用完成时检查每个out 参数的value 成员。下面的Slice定义,所有的参数都是作为out 参数传递的: struct NumberAndString { int x; string str; }; sequence StringSeq; dictionary StringTable; interface ServerToClient { void op1(out int i, ou

9、t float f, out bool b, out string s); void op2(out NumberAndString ns,out StringSeq ss,out StringTable st); void op3(out ServerToClient* proxy); }; Slice 编译器为这个定义生成了以下out参数代码: public interface ClientToServerPrx extends Ice.ObjectPrx { public void op1(Ice.IntHolder i, Ice.FloatHo

10、lder f, Ice.BooleanHolder b,Ice.StringHolder s); public void op2(NumberAndStringHolder ns, StringSeqHolder ss,StringTableHolder st); public void op3(ClientToServerPrxHolder proxy); } 假定我们有一个代理,指向的是ServerToClient 接口,客户代码可以 这样传递参数: ClientToServerPrx p = ...; // Get proxy... Ice.IntH

11、older ih = new Ice.IntHolder(); Ice.FloatHolder fh = new Ice.FloatHolder(); Ice.BooleanHolder bh = new Ice.BooleanHolder(); Ice.StringHolder sh = new Ice.StringHolder(); p.op1(ih, fh, bh, sh); NumberAndStringHolder nsh = new NumberAndString(); StringSeqHolder ssh = new StringSeqHolder(); Stri

12、ngTableHolder sth = new StringTableHolder(); p.op2(nsh, ssh, sth); ServerToClientPrxHolder stcph = new ServerToClientPrxHolder(); p.op3(stcph); System.out.writeln(ih.value); 一旦操作调用完成,值就会出现在各个holder 实例中,你可以通过每个实例的value 成员访问这些值。 2. 客户端文件 l Prx.java 这个是代理接口。例

13、如PrinterPrx,在客户的地址空间中, PrinterPrx 的实例是“远地的服务器中的Printer接口的实例”的“本地大使”。与服务器端对象有关的所有细节,比如其地址、所用协议、对象标识,都封装在该实例中。 这个类的方法调用都是远程服务端的调用,执行printString()方法的具体实现是在远程服务端执行的。 l PrxHolder.java 代理定义holder 类,用法参考Holder.java l PrxHelper.java 这个是接口的代理定义助手类,客户

14、端要得到服务端的servant的代理类,客户端不能通过new Prx()方式来获取代理对象,只能通过这个助手类,帮你获得代理对象。经常用的就两个方法checkedCast 和 uncheckedCast,这两个方法实现的都是向下转换。 注意, checkedCast 会联系服务器。这是必要的,因为只有服务器中的代理实现确切地知道某个对象的类型。所以checkedCast 可能会抛出ConnectTimeoutException 或ObjectNotExistException(这也解释了为何需要助手类:ICE在运行时必须联系服务器,所以我们不能使用Ja

15、va 的向下转换)。 与此相反, uncheckedCast 不会联系服务器,而是会无条件地返回具有所请求的类型的代理 。但是,如果你要使用uncheckedCast,你必须确定这个代理真的支持你想要转换到的类型;而如果你弄错了,你很可能会在调用代理上的操作时,引发运行时异常。对于这样的类型失配,最后可能会引发OperationNotExistException,但也有可能引发其他异常,比如整编异常。而且,如果对象碰巧有一个同名的操作,但参数类型不同,则有可能根本不产生异常,你最后就会把调用发送给类型错误的对象;这个对象可能会做出非常糟糕的事情。 l _Del.java l _DelD.java l _DelM.java 不用关心上面的这些文件,这些文件包含的是供Java 映射内部使用的代码;它们包含的功能与应用程序无关。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服