虎阳生力片怎么样:spring对java远程调用的简化(一)之RMI
来源:百度文库 编辑:偶看新闻 时间:2024/05/06 00:10:56
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
PerfectTime类(爽吧,简简单单的POJO)
package com.open.rmi.ex2;
public class PerfectTime implements PerfectTimeI {
public long getPerfectTime() {
return System.currentTimeMillis();
}
}配置bean_server.xml
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的魅力啊
java调用的问题。
JAVA调用类的问题。
关于java的函数调用~~
如何远程调用cPanel空间的MYSQL?
可以远程的调用数据库吗
怎样调用远程的access数据库??
我想问远程调用SQL的问题
XP远程调用程序的问题。
如何远程调用动网的帖子
关于DLL的远程调用问题
用java语言怎么实现对windows字体修改对话框的调用
java怎样调用c写的服务?
如何调用自建的java包
java调用时的环境变量怎么设置?
java调用时的环境变量怎么设置?
JAVA怎样调用方法里的变量
中国曾经对汉字做过几次简化?每次简化的情况是怎么样的?
freesql远程调用...
什么是远程外壳调用?
ASP远程调用文件
远程调用失败
远程过程调用失败
求一首钢琴曲---久石让的 <spring>
PHP对ASP的调用