雪湖小札@blogjava
心情與技術(shù)文檔同行 http://hi.baidu.com/jingleq
BlogJava
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
我參與的團(tuán)隊(duì)
深圳Java俱樂部(0/0)
隨筆檔案
(24)
2012年2月 (1)
2007年11月 (1)
2007年7月 (1)
2007年6月 (13)
2007年5月 (8)
文章檔案
(2)
2007年6月 (2)
搜索
最新評(píng)論
1.?re: struts與flex通過xml交互模型
路過,哈
--豆抓
2.?re: 跑在groovy上的rmi
Groovy可以充分利用Java世界中的一切資源,這也是Groovy的一大優(yōu)勢(shì) :)
--山風(fēng)小子
3.?re: 征服javascript(七)-Jquery插件jquery.jq.mvc發(fā)布
玩jQuery有一段時(shí)間,看起來你這是一個(gè)有意思的東西
--NetFetch
4.?re: antlr-語言編譯的簡(jiǎn)化
是antlr2的寫法
--山風(fēng)小子
閱讀排行榜
1.?struts與flex通過xml交互模型(2157)
2.?asm學(xué)習(xí)(6)--asm應(yīng)用(使用jasml對(duì)antlrstudio破解)(1831)
3.?跑在groovy上的rmi(1327)
4.?antlr-(一)語言編譯的簡(jiǎn)化(1274)
5.?征服javascript(七)-Jquery插件jquery.jq.mvc發(fā)布 (1119)
評(píng)論排行榜
1.?征服javascript(七)-Jquery插件jquery.jq.mvc發(fā)布 (1)
2.?struts與flex通過xml交互模型(1)
3.?跑在groovy上的rmi(1)
4.?antlr-(一)語言編譯的簡(jiǎn)化(1)
5.?asm學(xué)習(xí)(6)--asm應(yīng)用(使用jasml對(duì)antlrstudio破解)(0)
跑在groovy上的rmi
小試了一把用groovy來寫java的rmi,體驗(yàn)到了groovy對(duì)java的兼容性,無論從代碼上還是功能上!真的可以理groovy就是腳本化的java,groovy就是java擴(kuò)衡ruby on rails的武器!
參考了網(wǎng)上的經(jīng)典《Java RMI 入門》,我寫了兩個(gè)groovy文件。因?yàn)橄敕略靔ava的文件管理方式,所以我把接口寫成一個(gè)groovy文件,實(shí)現(xiàn)類寫成一個(gè)groovy文件。雖然單個(gè)groovy文件名可以和里面的類名不一樣,但是如果出現(xiàn)不一樣的,在import關(guān)聯(lián)的時(shí)候就會(huì)出現(xiàn)問題。
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();
}
}
}
因?yàn)樵趯憆mi的時(shí)候需要通過命令從.class文件中生成*_Stub.class文件,所以必須把groovy文件通過groovyc編譯成.class文件,再通過命令rmic **來生成*_Stub.class。另外一個(gè)要運(yùn)行g(shù)roovy生成的.class文件需要加入groovy的相關(guān)包。為了使執(zhí)行過程自動(dòng)化,使用了ant來處理。
在開啟rmi的注冊(cè)服務(wù)之后就可以通過ant來執(zhí)行rmi了。開戶rmi服務(wù)命令:rmiregistry
在執(zhí)行rmi的時(shí)候關(guān)鍵是給jvm加個(gè)參數(shù)-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/,注意,網(wǎng)上挺多-Djava.server.codebase的寫法,這種寫法在我的試驗(yàn)中不能通過。
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
>
可能會(huì)遇到編譯時(shí)的lib問題,如果缺少什么lib就用set classpath吧~`這個(gè)問題我也有點(diǎn)疑惑,在另一臺(tái)機(jī)器上使用
<
path
id
="groovy.classpath"
>
<
fileset
dir
="C:/groovy-1.0/lib/"
/>
</
path>
不起作用,只能在控制臺(tái)上事先用set classpath來加下包。
posted on 2007-07-19 10:43
csnowfox
閱讀(1327)
評(píng)論(1)
編輯
收藏
Feedback
#
re: 跑在groovy上的rmi
2007-07-21 11:47
山風(fēng)小子
Groovy可以充分利用Java世界中的一切資源,這也是Groovy的一大優(yōu)勢(shì) :)
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © csnowfox
主站蜘蛛池模板:
若尔盖县
|
芜湖县
|
荔波县
|
榕江县
|
陆河县
|
玉门市
|
五大连池市
|
晋州市
|
静宁县
|
乌鲁木齐县
|
锦州市
|
拜城县
|
邵东县
|
海林市
|
特克斯县
|
台东市
|
昌平区
|
久治县
|
青阳县
|
龙陵县
|
滨海县
|
百色市
|
冀州市
|
新蔡县
|
青龙
|
侯马市
|
南城县
|
德阳市
|
贡觉县
|
湘西
|
盐池县
|
黄骅市
|
霸州市
|
通辽市
|
隆化县
|
邛崃市
|
宁津县
|
南京市
|
普陀区
|
靖边县
|
溆浦县
|