Серверный JavaScript 1.4. Руководство по использованию

       

Установка FlexiServer как CORBA-Сервера


Функция main отдельного Java-приложения реализована в flexi\impl\FlexiServer.java. Его код таков:

import org.omg.CORBA.*;class FlexiServer {
public static void main(String[] args) {

   try {
      // Инициализируются orb и boa.

      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();

      org.omg.CORBA.BOA boa = orb.BOA_init();

      // Создаётся серверный объект.
       Admin __admin = new Admin();       // Информирует boa, что серверный объект готов.
       boa.obj_is_ready(__admin);       // Регистрируется имя объекта с именем сервиса.
       // Сначала определяется хост имени сервиса, по умолчанию это <localhost>:80.
       String _nameServiceHost = null;
      if (args.length > 0) {
         // Принимается, что первый arg это имя хоста имени
         // сервиса. Ожидаемый формат: <hostname>:<port>
          _nameServiceHost = args[0];
      }

      else {
          String _localHostName = null;
          try {
            _localHostName=
                java.net.InetAddress.getLocalHost().getHostName();
             _nameServiceHost = _localHostName + ":80";
          }
          catch (java.net.UnknownHostException e) {
             System.out.println("Couldn't determine local host;
             can't register name.");
          }
      }       String _regURL = "http://" + _nameServiceHost + "/FSA-Admin";
       System.out.println("Registering Admin object at URL: " + _regURL);       // Регистрируется серверный объект.


      netscape.WAI.Naming.register(_regURL, __admin);

      System.out.println("Started FSA Admin: " + __admin);       boa.impl_is_ready();

   }   catch (org.omg.CORBA.SystemException e) {
      System.err.println(e);
      }

   }
}

Этот код инициализирует ORB и создаёт экземпляр класса Admin. Затем экземпляр регистрируется как распределённый объект с URL в форме http://host

:port/FSA-Admin. По умолчанию host это имя хоста, на котором запущен FlexiServer, а port равен 80. Вы можете поставить Ваши собственные значения для host:port  путём передачи их как аргументов для FlexiServer при его старте. Чтобы использовать локальный хост, но другой номер порта, Вам нужно изменить исходный код и перекомпилировать его. Если код имеет соответствующее имя, он регистрирует объект, используя метод register объекта netscape.WAI.Naming. Дополнительно см. книгу .

Наконец, код печатает сообщение на консоль и ожидает запросы от CORBA-клиентов. В данном случае единственным CORBA-клиентом, который знает о нём, является приложения flexi на языке JavaScript.


Содержание раздела