KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > rmi > Naming


1 package com.tirsen.nanning.samples.rmi;
2
3 import java.io.IOException JavaDoc;
4 import java.io.ObjectInputStream JavaDoc;
5 import java.io.ObjectOutputStream JavaDoc;
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 JavaDoc lookup(String JavaDoc name) throws IOException JavaDoc, ClassNotFoundException JavaDoc {
19
20         ServerConnection serverConnection;
21         try {
22             serverConnection = connectionManager.openConnection();
23         } catch (IOException JavaDoc e) {
24             throw new CouldNotConnectException(e);
25         }
26         try {
27             ObjectOutputStream JavaDoc output;
28             try {
29                 output = new ObjectOutputStream JavaDoc(serverConnection.getOutputStream());
30             } catch (IOException JavaDoc e) {
31                 throw new CouldNotConnectException(e);
32             }
33             output.writeObject(new NamingLookup(name));
34             ObjectInputStream JavaDoc input;
35             try {
36                 input = new ObjectInputStream JavaDoc(serverConnection.getInputStream());
37             } catch (IOException JavaDoc e) {
38                 throw new CommunicationException(e);
39             }
40             return marshaller.unmarshal(input.readObject());
41         } finally {
42             serverConnection.close();
43         }
44     }
45 }
46
Popular Tags