Java/Spring/RMI

Материал из Java эксперт
Перейти к: навигация, поиск

RMI Remoting

   <source lang="java">
      

File: context.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="rmserver" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
    <property name="serviceUrl">
        <value>rmi://localhost/rmserver</value>   
    </property>
    <property name="serviceInterface">
        <value>rmserver</value>
    </property>
  </bean>
  <bean class="org.springframework.remoting.rmi.RmiServiceExporter">
    <property name="service">
        <value>rmservice</value>   
    </property>
    <property name="serviceName">
        <value>service1</value>   
    </property>
    <property name="serviceInterface">
        <value>rmservice</value>
    </property>
  </bean>
  <bean id="rmservice" class="RMIserviceimpl">
  </bean>
  <bean id="rmserverimpl" class="RMIserverimpl">
     <property name="rmserver"><ref bean="RMIserver"/></property>
  </bean>
  

</beans>

File: Main.java import java.rmi.Naming; import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; class rmserviceclient {

 public static void main(String args[]) throws Exception {
   Resource res = new ClassPathResource("context.xml");
   BeanFactory factory = new XmlBeanFactory(res);
   RMIServer bean1 = (RMIServer) factory.getBean("RMIServer");
   String r = bean1.getresult("asdf");
   System.out.println(r);
   // ////////////client/////////////////
   res = new ClassPathResource("context.xml");
   factory = new XmlBeanFactory(res);
   RMIservice bean2 = (RMIservice) factory.getBean("RMIservice");
   String s = bean2.getresult("AAA");
   System.out.println(s);
 }

} interface RMIservice {

 String getresult(String s);

} interface RMIServer extends Remote {

 String getresult(String s) throws RemoteException;

} class RMIserviceimpl implements RMIservice {

 public static void main(String args[]) {
   System.out.println("ready");
 }
 public RMIserviceimpl() {
   System.out.println("constructor   ok");
 }
 public String getresult(String a) {
   String r = "Hi " + a;
   return r;
 }

} class RMIserverimpl extends UnicastRemoteObject implements RMIServer {

 public static void main(String args[]) {
   try {
     RMIserverimpl ob = new RMIserverimpl();
     Naming.rebind("RMIServer", ob);
     System.out.println("ready");
   } catch (Exception e1) {
     System.out.println("registered");
   }
 }
 public RMIserverimpl() throws RemoteException {
   System.out.println("constructor   ok");
 }
 public String getresult(String a) throws RemoteException {
   String r = "hi " + a;
   return r;
 }

}


      </source>