解决ubuntu系统安装完后启动项里没有ubuntu的问题
2014-02-17 15:55
711 查看
RMI是从JDK 1.1开始就出现的API功能,它让客户端在使用远程对象所提供的服务时,就如何使用本地对象一样,然而RMI在使用时必须一连串繁复的手续,像是服务介 面在定义时必须继承java.rmi.Remote接口、服务Server在实作时必须继承java.rmi.UnicastRemoteObject类 别、必须使用rmic产生stub与skeleton等等。透过org.springframework.remoting.rmi.RmiServiceExporter,Spring 简化了这些手续,来实际看看例子,了解Spring在RMI上的使用与简化,首先定义服务对象的接口:ISomeService.javapackage onlyfun.caterpillar;public interface ISomeService {
public String doSomeService(String some);
public void doOtherService(int other);
}可以看到服务对象的接口不用继承java.rmi.Remote界面,而在实作时也不用继承java.rmi.UnicastRemoteObject,例如:SomeServiceImpl.javapackage onlyfun.caterpillar;public class SomeServiceImpl implements ISomeService {
public String doSomeService(String some) {
return some + " is processed";
}public void doOtherService(int other) {
// bla.. bla
}
}
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="someService" class="onlyfun.caterpillar.SomeServiceImpl"/><bean id="serviceExporter"
class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service">
<ref bean="someService"/>
</property>
<property name="serviceName">
<value>SomeService</value>
</property>
<property name="serviceInterface">
<value>onlyfun.caterpillar.ISomeService</value>
</property>
</bean></beans>
很简单,只要告诉org.springframework.remoting.rmi.RmiServiceExporter服务对象、名称与要代理的接口,之后Spring读取完定义文件并生成Bean实例后,RMI服务就会启动。接下来看看客户端要如何实作,只要透过org.springframework.remoting.rmi.RmiProxyFactoryBean,并告知服务的URL、代理的接口即可,就好像在使用本地端管理的服务一样,例如Bean定义档可以如下撰写:rmi-client.xml
ApplicationContext context =
new FileSystemXmlApplicationContext("rmi-client.xml");ISomeService service = (ISomeService) context.getBean("someServiceProxy");String result = service.doSomeService("Some request");
System.out.println(result);
....
public String doSomeService(String some);
public void doOtherService(int other);
}可以看到服务对象的接口不用继承java.rmi.Remote界面,而在实作时也不用继承java.rmi.UnicastRemoteObject,例如:SomeServiceImpl.javapackage onlyfun.caterpillar;public class SomeServiceImpl implements ISomeService {
public String doSomeService(String some) {
return some + " is processed";
}public void doOtherService(int other) {
// bla.. bla
}
}
接下来在伺服端,您只要在Bean定义档中定义,让Spring管理、生成Bean,即可注册、启动RMI服务,例如:rmi-server.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="someService" class="onlyfun.caterpillar.SomeServiceImpl"/><bean id="serviceExporter"
class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service">
<ref bean="someService"/>
</property>
<property name="serviceName">
<value>SomeService</value>
</property>
<property name="serviceInterface">
<value>onlyfun.caterpillar.ISomeService</value>
</property>
</bean></beans>
很简单,只要告诉org.springframework.remoting.rmi.RmiServiceExporter服务对象、名称与要代理的接口,之后Spring读取完定义文件并生成Bean实例后,RMI服务就会启动。接下来看看客户端要如何实作,只要透过org.springframework.remoting.rmi.RmiProxyFactoryBean,并告知服务的URL、代理的接口即可,就好像在使用本地端管理的服务一样,例如Bean定义档可以如下撰写:rmi-client.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="someServiceProxy" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl"> <value>rmi://localhost/SomeService</value> </property> <property name="serviceInterface"> <value>onlyfun.caterpillar.ISomeService</value> </property> </bean> </beans>以下是个简单的客户端呼叫远程服务的例子:....
ApplicationContext context =
new FileSystemXmlApplicationContext("rmi-client.xml");ISomeService service = (ISomeService) context.getBean("someServiceProxy");String result = service.doSomeService("Some request");
System.out.println(result);
....
相关文章推荐
- 解决安装完Ubuntu系统后启动项中没有Ubuntu的问题
- 解决安装完Ubuntu系统后启动项中没有Ubuntu的问题
- 解决安装完Ubuntu系统后启动项中没有Ubuntu的问题
- 解决ubuntu与win7双系统安装之后没有ubuntu引导进入系统的问题
- 【已解决】安装Ubuntu时怎样分区--利用EasyBCD在win7下进行ubuntu安装(双系统)时遇到报错:没有根文件系统,请回到分区菜单以修正此错误
- 安装ubuntu双系统后,找不到windows启动项的解决方法。
- Ubuntu 14.04 64位安装WPS(成功解决没有ia32-libs的问题)
- XP硬盘安装Ubuntu双系统遇到的vmlinuz File Not Found问题原因分析及解决
- xp 安装ubuntu以后,开机没有ubuntu启动项的 解决办法
- 安装windows7导致Ubuntu启动项消失的问题的解决
- 解决wubi安装ubuntu时要下载系统映像文件问题
- Win7安装Ubuntu16.04双系统时候不显示分配出来的空闲空间或者显示不可用问题解决办法
- 解决wubi安装ubuntu时要下载系统映像文件问题
- 解决用rpm安装mysql时遇到系统库没有安装的问题
- windows系统安装ubuntu后,grub中没有windows启动项
- 安装windows7导致Ubuntu启动项消失的问题的解决
- 安装Ubuntu版本linux过程中没有提示设置root用户密码问题的解决办法
- 成功解决ubuntu14.04系统没有声音的问题
- 解决安装ubuntu14.04后没有无线没有声音的问题
- 解决ubuntu14.04系统没有声音的问题