RmiServer  1.0
 Alle Klassen Namensbereiche Dateien Funktionen Variablen
RmiServer.java
gehe zur Dokumentation dieser Datei
1 package controller;
2 
3 import java.io.IOException;
4 import java.rmi.RMISecurityManager;
5 import java.rmi.RemoteException;
6 import java.rmi.registry.LocateRegistry;
7 import java.rmi.registry.Registry;
8 import java.rmi.server.RMISocketFactory;
9 import java.security.Permission;
10 import java.text.SimpleDateFormat;
11 import java.util.Date;
12 
13 import org.apache.log4j.ConsoleAppender;
14 import org.apache.log4j.FileAppender;
15 import org.apache.log4j.Level;
16 import org.apache.log4j.Logger;
17 import org.apache.log4j.SimpleLayout;
18 
25 public class RmiServer {
26  public static Controller controller = null;
27  public static Registry registry = null;
28  public static ServerInterfaceImpl rmiServer = null;
29  public static RMISocketFactory customRMISocketFactory = null;
30 
31  public static Logger fileLogger = Logger.getRootLogger();
32  public static Logger consolelogger = Logger.getLogger("ConsoleLogger"); //$NON-NLS-1$
33 
34  public static void main(String[] args) {
35  int port = Registry.REGISTRY_PORT;
36 
40  try {
41  SimpleLayout layout = new SimpleLayout();
42  ConsoleAppender consoleAppender = new ConsoleAppender(layout);
43  consolelogger.addAppender(consoleAppender);
44 
45  FileAppender fileAppender = new FileAppender(layout, "log.txt", //$NON-NLS-1$
46  false);
47  fileLogger.addAppender(fileAppender);
48 
49  // ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF:
50  fileLogger.setLevel(Level.INFO);
51  consolelogger.setLevel(Level.INFO);
52 
53  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); //$NON-NLS-1$
54  String time = sdf.format(new Date());
55  fileLogger.info(Messages.getString("RmiServer.3") + time); //$NON-NLS-1$
56  } catch (Exception ex) {
57  System.out.println(ex);
58  }
59 
63  consolelogger.info(Messages.getString("RmiServer.4")); //$NON-NLS-1$
64 
68  System.setProperty("java.security.policy", "file:./server.policy");
69 
74  try {
76  RMISocketFactory.setSocketFactory(customRMISocketFactory);
77  } catch (IOException e) {
79  .error(Messages.getString("RmiServer.16") + e.getMessage()); //$NON-NLS-1$
80  }
81 
85  if (System.getSecurityManager() == null) {
86  System.setSecurityManager(new RMISecurityManager() {
87 
88  @Override
89  public void checkPermission(Permission permission) {
90  }
91  });
92  }
93 
99  if (args.length > 0) {
100  port = Integer.parseInt(args[0]);
101 
102  if (args.length > 1) {
103  if (args[1].substring(0, 14).equals("createRegistry")) { //$NON-NLS-1$
104  if (args[1].split("=")[1].equals("true")) { //$NON-NLS-1$ //$NON-NLS-2$
105  consolelogger.info(Messages.getString("RmiServer.8") //$NON-NLS-1$
106  + port);
107  try {
108  registry = LocateRegistry.createRegistry(port);
109  } catch (RemoteException e) {
110  consolelogger.error(Messages
111  .getString("RmiServer.9") //$NON-NLS-1$
112  + port);
113  }
114  }
115  }
116  }
117  } else {
118  consolelogger.info(Messages.getString("RmiServer.10") //$NON-NLS-1$
119  + port);
120  try {
121  registry = LocateRegistry.createRegistry(port);
122  } catch (RemoteException e) {
123  consolelogger.error(Messages.getString("RmiServer.11") //$NON-NLS-1$
124  + port);
125  }
126  }
127 
131  if (registry == null) {
132  consolelogger.info(Messages.getString("RmiServer.12") //$NON-NLS-1$
133  + port);
134  try {
135  registry = LocateRegistry.getRegistry(port);
136  } catch (RemoteException e) {
137  consolelogger.error(Messages.getString("RmiServer.13")); //$NON-NLS-1$
138  System.exit(1);
139  }
140 
141  consolelogger.info(Messages.getString("RmiServer.14")); //$NON-NLS-1$
142  } else {
143  consolelogger.info(Messages.getString("RmiServer.15")); //$NON-NLS-1$
144  }
145 
146  boolean ok = false;
147 
151  if (registry != null) {
152  try {
155 
156  ok = true;
157  } catch (Exception e) {
158  consolelogger.error(Messages.getString("RmiServer.17") //$NON-NLS-1$
160  + Messages.getString("RmiServer.18") + e.getMessage()); //$NON-NLS-1$
161  consolelogger.info(Messages.getString("RmiServer.19")); //$NON-NLS-1$
162  }
163  }
164 
168  if (ok) {
169  controller = new Controller();
170  } else {
171  consolelogger.info(Messages.getString("RmiServer.20")); //$NON-NLS-1$
172  System.exit(1);
173  }
174  }
175 }