本文是运行IceStorm中自带java的Demo。
前提是需要安装和配置jdk、ice、和ant环境,如下图显示各个软件和工具的版本。
jdk版本:
ant版本:
Ice版本:
在下载并安装好Ice之后,会提示是否需要把Ice中的Demo也下载下来。把Ice的Demo下载下来之后放到指定目录,以下是安装Ice Demo全部:
由于是运行IceStorm的java Demo。因此进入demoj目录,以下是列出所有demoj的所有子目录,然后进入IceStorm目录中:
进入IceStorm目录之后有一个build.xml文件。在命令行中,进入到此目录并使用ant命令:
然后进入clock目录,会发现此目录下多出了两个文件:
简单介绍下,在clock目录中使用ant命令,是将clock目录中的Clock.ice文件编译成java源代码和.class的字节码,源代码就放在了generated文件夹中,而。class字节码就放在了classes文件夹中。
打开另一个命令行窗口,进入到clock目录,然后输入:icebox --Ice.Config=config.icebox 启动IceStorm服务
服务启动之后。
使用记事本或者其他的文本编辑器打开clock目录下的build.xml文件:添加以下两行代码:
<copy todir="${class.dir}" file="${basedir}/config.pub"></copy>
<copy todir="${class.dir}" file="${basedir}/config.sub"></copy>
添加以上红圈中的的两行代码就是为了将clock目录中的config.pub和config.sub这两个文件拷贝到classes文件夹中。
然后从命令行中进入到clock目录。再次使用ant命令:
文件拷贝进去之后,然后进入到classes目录中,输入:java Subscriber
当这个窗口运行起来了,那么先前启动IceStorm服务的窗口会有变化,如下:
然后再开启另一个窗口,并进入到classes目录中,并输入:java Publisher
而,现在开启的java Subscriber窗口中就会不停地刷出当前的日期和时间。
也可以再次开启一个命令行窗口,进入到classes目录,使用java Subscriber,也会不停地刷出当前时间和日期
好了,关于IceStorm消息发布于接受的Demo就已经完成了,具体的命令可以参考clock目录中的README.txt(这是官网给出的,我也是参考这个来运行的)。
由于本人也是初学,所以本文只是为了记录自己的学习过程,如有错误,请大家指正,若是有误导大家的。抱歉,对您造成了麻烦。一切以官网为主准!
做一个简单的总结:
1、在运行IceStorm的Demo时候,首先进入IceStorm目录,使用ant命令,指定目标文件clock。
2、然后再进入clock文件,修改build.xml文件,添加两行代码,把config.pub和config.sub文件拷贝到编译之后的classes文件夹中,然后再使用ant命令,那么就将Clock.ice文件通过slice2java命令转换成java的源文件和.class文件,这两个文件分别放在generated和classes文件夹中。
3、然后在继续输入:icebox --Ice.Config=config.icebox 启动IceStorm服务。
4、开启另一个命令行窗口,并进入到classes目录,输入:java Subscriber 消息接收
5、再开启一个命令行窗口,同样进入到classes目录中,输入:java Publisher 消息发布
然后就会在消息接收的窗口中不停地刷新当前的日期和时间。