public static Object export(Remote obj) {
    try {
      Exporter remoteMeemExporter = getExporter();

      return remoteMeemExporter.export(obj);
    } catch (ConfigurationException e) {
      e.printStackTrace();
    } catch (ExportException e) {
      e.printStackTrace();
    }

    return null;
  }
 /**
  * Registers a new database service or attaches it to an existing.
  *
  * @param dbname The name of the database file to open.
  */
 protected final void startServer(final String dbname) {
   if (System.getSecurityManager() == null) {
     System.setSecurityManager(new RMISecurityManager());
   }
   try {
     this._registry = LocateRegistry.createRegistry(_port);
     _remoteDataDAOImpl = new RemoteDataDAOImpl(dbname);
     _clients = _remoteDataDAOImpl.getClients();
     this._registry.rebind(DataDAO.SERVICENAME, _remoteDataDAOImpl);
     _logger.log(
         Level.INFO, ServerController.resources.getString("ServerController.INFO.D") + this._port);
   } catch (ExportException e) {
     _logger.log(Level.WARNING, e.getMessage());
     try {
       this._registry = LocateRegistry.getRegistry(this._port);
       _logger.log(Level.INFO, ServerController.resources.getString("ServerController.INFO.F"));
       boolean serviceAlreadyBound = false;
       String[] service = this._registry.list();
       for (int i = 0; i < service.length; i++) {
         _logger.log(Level.INFO, service[i]);
         if (service[i].equals(DataDAO.SERVICENAME)) {
           serviceAlreadyBound = true;
         }
         if (serviceAlreadyBound) {
           _logger.log(
               Level.INFO,
               ServerController.resources.getString("ServerController.INFO.G") + this._port);
         }
       }
       throw new RuntimeException(e.getMessage());
     } catch (RemoteException e1) {
       _logger.log(Level.WARNING, e.getMessage());
       throw new RuntimeException(e.getMessage());
     }
   } catch (RemoteException e) {
     _logger.log(Level.WARNING, e.getMessage());
     throw new RuntimeException(e.getMessage());
   } catch (IOException e) {
     _logger.log(Level.WARNING, e.getMessage());
     throw new RuntimeException(e.getMessage());
   }
 }