1 package com.tirsen.nanning.samples.rmi; 2 3 import java.io.IOException ; 4 import java.io.ObjectInputStream ; 5 import java.io.ObjectOutputStream ; 6 7 import com.tirsen.nanning.samples.prevayler.Marshaller; 8 9 public class Naming { 10 private Marshaller marshaller; 11 private ServerConnectionManager connectionManager; 12 13 public Naming(Marshaller marshaller, ServerConnectionManager connectionManager) { 14 this.marshaller = marshaller; 15 this.connectionManager = connectionManager; 16 } 17 18 public Object lookup(String name) throws IOException , ClassNotFoundException { 19 20 ServerConnection serverConnection; 21 try { 22 serverConnection = connectionManager.openConnection(); 23 } catch (IOException e) { 24 throw new CouldNotConnectException(e); 25 } 26 try { 27 ObjectOutputStream output; 28 try { 29 output = new ObjectOutputStream (serverConnection.getOutputStream()); 30 } catch (IOException e) { 31 throw new CouldNotConnectException(e); 32 } 33 output.writeObject(new NamingLookup(name)); 34 ObjectInputStream input; 35 try { 36 input = new ObjectInputStream (serverConnection.getInputStream()); 37 } catch (IOException e) { 38 throw new CommunicationException(e); 39 } 40 return marshaller.unmarshal(input.readObject()); 41 } finally { 42 serverConnection.close(); 43 } 44 } 45 } 46 | Popular Tags |