雪湖小札@blogjava
心情与技术文档同行 http://hi.baidu.com/jingleq
BlogJava
首页
新随笔
联系
聚合
管理
24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔档案
(24)
2012年2月 (1)
2007年11月 (1)
2007年7月 (1)
2007年6月 (13)
2007年5月 (8)
文章档案
(2)
2007年6月 (2)
搜索
最新评论
1. re: struts与flex通过xml交互模型
路过,哈
--豆抓
2. re: 跑在groovy上的rmi
Groovy可以充分利用Java世界中的一切资源,这也是Groovy的一大优势 :)
--山风小子
3. re: 征服javascript(七)-Jquery插件jquery.jq.mvc发布
玩jQuery有一段时间,看起来你这是一个有意思的东西
--NetFetch
4. re: antlr-语言编译的简化
是antlr2的写法
--山风小子
阅读排行榜
1. struts与flex通过xml交互模型(2149)
2. asm学习(6)--asm应用(使用jasml对antlrstudio破解)(1820)
3. 跑在groovy上的rmi(1318)
4. antlr-(一)语言编译的简化(1266)
5. 征服javascript(七)-Jquery插件jquery.jq.mvc发布 (1108)
评论排行榜
1. 征服javascript(七)-Jquery插件jquery.jq.mvc发布 (1)
2. struts与flex通过xml交互模型(1)
3. 跑在groovy上的rmi(1)
4. antlr-(一)语言编译的简化(1)
5. asm学习(6)--asm应用(使用jasml对antlrstudio破解)(0)
跑在groovy上的rmi
小试了一把用groovy来写java的rmi,体验到了groovy对java的兼容性,无论从代码上还是功能上!真的可以理groovy就是脚本化的java,groovy就是java扩衡ruby on rails的武器!
参考了网上的经典《Java RMI 入门》,我写了两个groovy文件。因为想仿造java的文件管理方式,所以我把接口写成一个groovy文件,实现类写成一个groovy文件。虽然单个groovy文件名可以和里面的类名不一样,但是如果出现不一样的,在import关联的时候就会出现问题。
F:\grails_apps\groovy\com\c2\HelloIn.groovy
package
com.c2;
import
java.rmi.
*
;
interface
HelloIn
extends
java.rmi.Remote
{
String sayHello()
throws
RemoteException;
}
F:\grails_apps\groovy\com\c2\Hello.groovy
package
com.c2;
import
java.rmi.
*
;
import
java.net.
*
;
import
java.rmi.registry.
*
;
import
java.rmi.server.
*
;
class
Hello
extends
java.rmi.server.UnicastRemoteObject
implements
HelloIn
{
Hello()
throws
RemoteException
{
super
();
}
String sayHello()
throws
RemoteException
{
return
"
Hello,World!
"
;
}
static
void
main(args)
{
try
{
Hello h
=
new
Hello();
Naming.rebind(
"
hello
"
,h);
println
"
ready
"
;
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
因为在写rmi的时候需要通过命令从.class文件中生成*_Stub.class文件,所以必须把groovy文件通过groovyc编译成.class文件,再通过命令rmic **来生成*_Stub.class。另外一个要运行groovy生成的.class文件需要加入groovy的相关包。为了使执行过程自动化,使用了ant来处理。
在开启rmi的注册服务之后就可以通过ant来执行rmi了。开户rmi服务命令:rmiregistry
在执行rmi的时候关键是给jvm加个参数-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/,注意,网上挺多-Djava.server.codebase的写法,这种写法在我的试验中不能通过。
F:\grails_apps\groovy\build.xml
<
project
name
="mygroovy-build"
default
="run"
>
<
property
environment
="env"
/>
<
path
id
="groovy.classpath"
>
<
fileset
dir
="C:/groovy-1.0/lib/"
/>
</
path
>
<
taskdef
name
="groovyc"
classname
="org.codehaus.groovy.ant.Groovyc"
classpathref
="groovy.classpath"
/>
<
target
name
="compile"
description
="compile groovy to bytecode"
>
<
mkdir
dir
="classes"
/>
<
groovyc
destdir
="classes"
srcdir
="."
includes
="com/c2/HelloIn.groovy,com/c2/Hello.groovy"
classpathref
="groovy.classpath"
>
</
groovyc
>
</
target
>
<
target
name
="mksub"
depends
="compile"
description
="make the sub"
>
<
rmic
classname
="com.c2.Hello"
base
="F:/grails_apps/groovy/classes/"
/>
</
target
>
<
target
name
="run"
depends
="mksub"
description
="run the compiled class"
>
<
java
classname
="com.c2.Hello"
fork
="true"
>
<
classpath
refid
="groovy.classpath"
/>
<
classpath
location
="classes"
/>
<
jvmarg
value
="-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/"
/>
</
java
>
</
target
>
</
project
>
可能会遇到编译时的lib问题,如果缺少什么lib就用set classpath吧~`这个问题我也有点疑惑,在另一台机器上使用
<
path
id
="groovy.classpath"
>
<
fileset
dir
="C:/groovy-1.0/lib/"
/>
</
path>
不起作用,只能在控制台上事先用set classpath来加下包。
posted on 2007-07-19 10:43
csnowfox
阅读(1318)
评论(1)
编辑
收藏
Feedback
#
re: 跑在groovy上的rmi
2007-07-21 11:47
山风小子
Groovy可以充分利用Java世界中的一切资源,这也是Groovy的一大优势 :)
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © csnowfox