1 6 7 package SOFA.SOFAnet.Transport.RMI; 8 9 import java.net.InetAddress ; 10 import java.net.MalformedURLException ; 11 import java.rmi.Naming ; 12 import java.rmi.NotBoundException ; 13 import java.rmi.RemoteException ; 14 import SOFA.SOFAnet.Repository.NodeInfo; 15 16 21 public class RMITransportServerHolder 22 { 23 private RMITransportInterface server; 24 private NodeInfo nodeInfo; 25 26 27 public RMITransportServerHolder() 28 { 29 } 30 31 32 public void setNode(NodeInfo nodeInfo) 33 { 34 this.nodeInfo = nodeInfo; 35 } 36 37 38 public synchronized RMITransportInterface getServer() throws RMITransportException 39 { 40 if (nodeInfo == null) throw new RMITransportException("Not specified node"); 41 42 if (server != null) return server; 43 44 try 45 { 46 server = (RMITransportInterface)Naming.lookup("rmi://" + nodeInfo.getAddressAndPort() + "/SOFAnet/RMITransportServer"); 47 } 48 catch (NotBoundException e) 49 { 50 server = null; 51 throw new RMITransportException(e.getMessage(), e); 52 } 53 catch (MalformedURLException e) 54 { 55 server = null; 56 throw new RMITransportException(e.getMessage(), e); 57 } 58 catch (RemoteException e) 59 { 60 server = null; 61 throw new RMITransportException(e.getMessage(), e); 62 } 63 64 return server; 65 } 66 67 68 public void releaseServer() 69 { 70 server = null; 71 } 72 73 } 74 | Popular Tags |