- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Eclipse上进行ICE开发的入门学习
ICE 安装-测试
安装:
官网:
下载:Windows下安装,到/download.html下载Windows Installers下的Ice-3.4.2.msi。
安装:点击下一步安装即可。(会让选择安装目录和demo目录。这里我们假设安装目录安装在C:\ZeroC\Ice-3.4.2;假设demo目录安装在E:\work\ice);
环境配置:需要Jdk5或6,配置
classpath (.;c:\jdk16\lib\dt.jar;c:\jdk16\lib\tools.jar;C:\ZeroC\Ice-3.4.2\lib\Ice.jar;C:\ZeroC\Ice-3.4.2\lib\db.jar;C:\ZeroC\Ice-3.4.2\lib\Freeze.jar;)
path(C:\ZeroC\Ice-3.4.2\bin;)
测试demo:
Cmd打开 cd进入E:\work\ice\demoj\Ice\hello
执行:Slice2java hello.ice(生成Demo文件夹,里面都是生成的*.java文件)
执行:javac Server.java
执行:java Server
新开cmd窗口,cd进入E:\work\ice\demoj\Ice\hello
执行:javac Client.java
执行:java Client
(会发现Demo文件夹下生成了对应的class文件)
结果显示:
表示成功。
也可以在命令行输入slice2java –v,会出现ice的版本号,如图:
Slice2Java插件
安装方法:打开Eclipse-----help-install new software -work with... ,右侧add按钮,点击add -Add Site -输入/download/eclipse/添加好即可。
安装成功后,点击Eclipse的Window——preferences,如下图:
如果指定的路径不对,则显示如下:
建立Java工程:testIce
建立slice文件夹,在其目录下建立:Printer.ice,内容如下:
module PrinterInterface
{
Interface Printer
{
void printString(string s);
};
};
Printer.ice
Java调用ICE例子程序
使用Slice2Java插件:
右键点击工程“testIce”——Slice2Java——Add Slice2Java builder,自动生成generated文件夹下的java文件:
在完成这一步后,eclipse里面generated文件夹下的.java文件好多出现了“”,就是说好多文件出现错误,网上差了好久才发现是JDK的版本不同导致的报错。项目名上右键,选中properties,在弹出的对话框中选择Java compiler 在下拉列表中选择1.5,问题就解决了。
编写应用文件PrinterI,该文件是你要作为接口方法的定义,必须继承_PrinterDisp._PrinterDisp文件是在我们编写完Printer.ice后通过Add Slice2Java builder生成的,包含的是服务器端骨架类的定义,所用接口定义都要继承这个东西,这里的接口指供客户端调用的接口。
代码执行的步骤:1)通过调用Ice.initialize()初始化Ice run time状态,传递arg参数是因为服务器要接受一些命令行参数,调用initialize返回的结果是一个Ice::Communicator的引用。这是Ice run time 的主句柄。2)我们调用Communicator实例上的createObjectAdapterWithEndpoints,创建一个对象适配器,传入的参数是“SimplePrinterAdapter(适配器的名字)和“default -p 1,后者是要适配器用缺省协议(Tcp/ip)在端口1处侦听进来的请求。3)第三步,服务器端的run time已经初始化了,我们实例化一个PrinterI对象,为我们的Printer接口创建一个子类4)通过调用适配器的add方法,通知适配器有了一个新的子类(servant)存在,传入add的参数是我们刚刚实例化的子类(servant),再加上个标识符。在这里,“SimplePrinter是servant的名字(如果我们有多个打印机,每个打印机都可以有不同的名字,更正确的说法是,都有不同的对象标识)。5)接下来,我们调用适配器的activate方法来激活适配器(适配器最初是在holding 状态下创建的,如果我们有多个
文档评论(0)