小小程序員
BlogJava
|
首頁
|
發新隨筆
|
發新文章
|
|
|
管理
spring對java遠程調用的簡化(一)之RMI
Java開發者可以利用的遠程技術有以下幾種:
1.遠程方法調用(RMI)
2.Caucho的Hessian和Burlap
3.Spring自己的HTTP invoker
4.EJB
5.Web Services
一.RMI
它由5個包及3個應用工具組成
java.rmi 組織客戶端的RMI類、接口和異常
java.rmi.server 組織服務器端的RMI類 接口和異常
java.rmi.registry 組織用于管理RMI命名服務的類
java.rmi.dgc 組織用于管理分布式垃圾收集的類
java.rmi.activation 組織用于實現按需激活的RMI服務的類
rmic 編譯器,它產生RMI使用的存根和框架以完成分布式通信
rmiregistry 一個為RMI提供命名服務的服務器,這項服務把名字和對象關聯在一起
rmid 一個支持RMI激活框架的服務器
???? 如果具體還不知道什么是RMI,可以參考這篇非常不錯的文章《
JavaRMI入門實戰
》
注意:
??? 1)要把PerfectTime 和PerfectTimeI類中的
?? System.setSecurityManager(new RMISecurityManager()); 注釋掉(因為這需要配安全策略,比較麻煩)
???2)還有在JDK5下,用rmic -d命令的話只會輸出一個文件,因為JDK5對RMI進行了優化
接下來看看用spring對《
JavaRMI入門實戰
》例子的簡化
1.客戶端的配置及代碼
PerfectTimeI接口(不用繼承java.rmi.Remote接口了,普通的POJO)
package
?com.open.rmi.ex2;
public
?
interface
?PerfectTimeI??
{
????
long
?getPerfectTime();?
}
DisplayPerfectTime類(也是一個普通的類)
package
?com.open.rmi.ex2;
public
?
class
?DisplayPerfectTime?
{
????
private
?PerfectTimeI?pf;
????
public
?
void
?display()?
{
????????
for
?(
int
?i?
=
?
0
;?i?
<
?
10
;?i
++
)?
{
????????????System.out.println(
"
PerfectTime:
"
?
+
?pf.getPerfectTime());
????????}
????}
????
//
省略了pf的get,set方法
}
客戶端配置bean_client.xml
<
beans
>
????
<!--
客戶端
-->
????
<
bean?
id
="pf"
?class
="org.springframework.remoting.rmi.RmiProxyFactoryBean"
>
????????
<
property?
name
="serviceUrl"
?value
="rmi://192.168.1.8:1099/perfect_time"
/>
????????
<
property?
name
="serviceInterface"
?value
="com.open.rmi.ex2.PerfectTimeI"
/>
????
</
bean
>
????
<
bean?
id
="test"
?class
="com.open.rmi.ex2.DisplayPerfectTime"
>
????????
<
property?
name
="pf"
?ref
="pf"
/>
????
</
bean
>
</
beans
>
2.服務端的配置及代碼
PerfectTime類(爽吧,簡簡單單的POJO)
package
?com.open.rmi.ex2;
public
?
class
?PerfectTime??
implements
?PerfectTimeI?
{
????
public
?
long
?getPerfectTime()?
{
????????
return
?System.currentTimeMillis();
????}
}
配置bean_server.xml
<
beans
>
????
<!--
服務端:Spring讀取完定義文件,在生成serviceExporter實例后,RMI服務就會啟動
-->
????
<
bean?id
=
"
serviceExporter
"
????????
class
=
"
org.springframework.remoting.rmi.RmiServiceExporter
"
>
????????
<
property?name
=
"
service
"
?ref
=
"
pt
"
/>
????????
<
property?name
=
"
serviceName
"
?value
=
"
perfect_time
"
/>
????????
<
property?name
=
"
serviceInterface
"
?value
=
"
com.open.rmi.ex2.PerfectTimeI
"
/>
????
</
bean
>
????
<
bean?id
=
"
pt
"
?
class
=
"
com.open.rmi.ex2.PerfectTime
"
/>
</
beans
>
3.測試代碼
TestServer.java
package
?com.open.rmi.ex2;
import
?org.springframework.beans.factory.BeanFactory;
import
?org.springframework.context.support.ClassPathXmlApplicationContext;
public
?
class
?TestServer?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????BeanFactory?bf
=
new
?ClassPathXmlApplicationContext(
"
bean_server.xml
"
);
????????bf.getBean(
"
serviceExporter
"
);
????}
}
TestClient.java
package
?com.open.rmi.ex2;
import
?org.springframework.beans.factory.BeanFactory;
import
?org.springframework.context.support.ClassPathXmlApplicationContext;
public
?
class
?TestClient?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????BeanFactory?bf?
=
?
new
?ClassPathXmlApplicationContext(
"
bean_client.xml
"
);
????????DisplayPerfectTime?test?
=
?(DisplayPerfectTime)bf.getBean(
"
test
"
);
????????test.display();
????}
}
先運行TestServer,輸出
RmiServiceExporter?
-
?Could?not?detect?RMI?registry?
-
?creating?
new
?one
在運行TestClient就可以看到結果了
PerfectTime:
1150125107468
PerfectTime:
1150125107484
PerfectTime:
1150125107484
看到沒,你根本不用運行rmic -d G:\RMI test.PerfectTime,start rmiregistry 。
這就是spring的魅力啊
發表于 2006-06-12 23:15
~小Q
閱讀(2706)
評論(2)
編輯
收藏
所屬分類:
『
Spring
』
評論
#
re: spring對java遠程調用的簡化(一)之RMI
有錯!
Error creating bean with name 'test' defined in file ......Error setting property values; nested exception is PropertyAccessExceptionsException (1 errors)
ufo
評論于 2006-09-27 14:05
回復
更多評論
#
re: spring對java遠程調用的簡化(一)之RMI
我//省略了pf的get,set方法
你是不是沒補上咯
xfan
評論于 2006-10-11 09:41
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
圖解spring mvc
Quartz的cron表達式
在spring利用javamail,quartz定時發送郵件
spring對java遠程調用的簡化(三)之HTTPinvoker
spring對java遠程調用的簡化(二)之Hessian,Burlap
spring對java遠程調用的簡化(一)之RMI
spring中事務的屬性
事務的特點以及spring提供事務管理器的簡介
ProxyFactoryBean屬性介紹
spring中基礎核心接口介紹
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
公告
spring-誰與爭鋒
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
『
eclipse
』(2)
(rss)
『
Flash
』(1)
(rss)
『
JavaScript
』(1)
(rss)
『
Maven
』(1)
(rss)
『
Spring
』(17)
(rss)
『
springside
』(1)
(rss)
『
匯編
』(4)
(rss)
『
計劃
』(1)
(rss)
相冊
spring
Blog
論壇
積分與排名
積分 - 62785
排名 - 842
最新評論
1.?re: 在spring利用javamail,quartz定時發送郵件[未登錄]
感覺不錯嗎、
--xiaoxiao
2.?re: JavaScript中的arguments,callee,caller,call,appy
不錯啊
--artwl
3.?re: JavaScript中的arguments,callee,caller,call,appy[未登錄]
注意,arguments[0] 是對的。arguments是一個Object。
--你好
4.?re: JavaScript中的arguments,callee,caller,call,appy
評論內容較長,點擊標題查看
--zhangsir199
5.?re: Maven的eclipse插件使用的flash教程[未登錄]
除了插件是真的之外,其他怎么全是假的?
--王子
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 ~小Q
主站蜘蛛池模板:
亚洲αⅴ无码乱码在线观看性色
|
亚洲精品资源在线
|
www.xxxx.com日本免费
|
亚洲av无码成人精品区在线播放
|
亚洲欧美熟妇综合久久久久
|
成人影片麻豆国产影片免费观看
|
亚洲免费视频观看
|
国产成人免费爽爽爽视频
|
伊人久久五月丁香综合中文亚洲
|
24小时日本在线www免费的
|
中文字幕在线日亚洲9
|
最近免费中文字幕大全
|
亚洲AV无码之国产精品
|
免费看男女下面日出水视频
|
成人精品国产亚洲欧洲
|
四虎影视在线永久免费看黄
|
成人特级毛片69免费观看
|
久久亚洲高清综合
|
无码成A毛片免费
|
2017亚洲男人天堂一
|
成人毛片免费播放
|
日本视频免费观看
|
国产亚洲综合色就色
|
6080午夜一级毛片免费看6080夜福利
|
亚洲黄色网站视频
|
精品免费国产一区二区
|
国产精品免费久久久久影院
|
亚洲一区二区影院
|
天天看片天天爽_免费播放
|
猫咪免费人成网站在线观看入口
|
亚洲精品字幕在线观看
|
国产无人区码卡二卡三卡免费
|
亚洲AV无码国产剧情
|
亚洲人成亚洲人成在线观看
|
1000部夫妻午夜免费
|
亚洲AV成人精品日韩一区
|
亚洲熟女少妇一区二区
|
美女视频黄的全免费视频
|
九九免费精品视频在这里
|
亚洲av一综合av一区
|
无码国产精品久久一区免费
|