Где я могу найти рабочий пример того, как удаленно вызывать сервис OSGi, содержащийся в Eclipse Virgo? - PullRequest
4 голосов
/ 08 января 2012

Может ли кто-нибудь указать на пошаговое руководство по настройке удаленно доступного сервиса, содержащегося в Eclipse Virgo 3.0x?Я знаю, что стандарты существуют и т. Д., Но я не могу найти НЕТ примера, который, кажется, не содержит кучу размахиваний руками вместо конкретных шагов вместе с рабочим кодом / конфигурациями для загрузки.Меня не волнует, использует ли пример Apache CXF, Eclipse ECF или что-то еще.То, что я хочу, является эквивалентом RMI в том смысле, что как транспортный, так и проводной протокол абстрагируются от того, что представляется разработчикам как на стороне клиента, так и на стороне сервера, как простая Java (с некоторыми ограничениями).

Какие пакеты должныбыть развернутым в Деве для поддержки удаленного взаимодействия?Какие настройки конфигурации Spring-ish работают?Какие банки должны быть на пути к классам на стороне клиента?И т. Д .?

Ответы [ 2 ]

4 голосов
/ 10 апреля 2012

Я поигрался с Apache CXF DOSGI и получил его довольно легко.

  • Загрузите дистрибутив CXF с одним пакетом из здесь - я использовал 1.3.0.
  • Разархивируйте Virgo (для простоты я использовал дистрибутив ядра), скопируйте CXF-пакет в раскладку и запустите Virgo:

    $ bin/startup.sh
    [2012-04-04 14:17:33.011] startup-tracker              <KE0001I> Kernel starting. 
    [2012-04-04 14:17:36.135] startup-tracker              <KE0002I> Kernel started. 
    ...
    [2012-04-04 14:17:38.561] sync Event Dispatcher Thread <UR0001I> User region ready. 
    [2012-04-04 14:17:39.565] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'cxf-dosgi-ri-singlebundle-distribution-1.3.jar'. 
    [2012-04-04 14:17:40.060] fs-watcher                   <DE0000I> Installing bundle 'cxf-dosgi-ri-singlebundle-distribution' version '1.3.0'. 
    [2012-04-04 14:17:40.570] fs-watcher                   <DE0001I> Installed bundle 'cxf-dosgi-ri-singlebundle-distribution' version '1.3.0'. 
    [2012-04-04 14:17:40.593] fs-watcher                   <DE0004I> Starting bundle 'cxf-dosgi-ri-singlebundle-distribution' version '1.3.0'. 
    [2012-04-04 14:17:43.498] start-signalling-1           <DE0005I> Started bundle 'cxf-dosgi-ri-singlebundle-distribution' version '1.3.0'.
    
  • Установите и запустите сервер ZooKeeper в соответствии с эти инструкции - я использовал 3.4.3.См. Также инструкции ZooKeeper , включая инструкции по созданию файла конфигурации.

  • Создание файла org.apache.cxf.dosgi.discovery.zookeeper.properties, содержащего:

    zookeeper.host = 127.0.0.1
    

    и скопировать в пикап:

    [2012-04-04 14:29:51.385] fs-watcher                   <HD0001I> Hot deployer processing 'CREATED' event for file 'org.apache.cxf.dosgi.discovery.zookeeper.properties'. 
    [2012-04-04 14:29:51.417] fs-watcher                   <DE0000I> Installing configuration 'org.apache.cxf.dosgi.discovery.zookeeper' version '0.0.0'. 
    [2012-04-04 14:29:51.428] fs-watcher                   <DE0001I> Installed configuration 'org.apache.cxf.dosgi.discovery.zookeeper' version '0.0.0'. 
    [2012-04-04 14:29:51.434] fs-watcher                   <DE0004I> Starting configuration 'org.apache.cxf.dosgi.discovery.zookeeper' version '0.0.0'. 
    [2012-04-04 14:29:51.439] fs-watcher                   <DE0005I> Started configuration 'org.apache.cxf.dosgi.discovery.zookeeper' version '0.0.0'. 
    
  • Разархивировать еще одну копию ядра Virgo, скопировать пакет CXF и org.apache.cxf.dosgi.discovery.zookeeper.properties в pickup и запускается с другого порта JMX:

    $ bin/startup.sh -jmxport 9876
    

    Вот и все, но чтобы убедиться, что он работает, остальные шаги запускают пример приветствия ...

  • Установите / запустите greeter interface и реализация объединяются в первый экземпляр Virgo.Самый простой способ - скопировать пакет интерфейса в репозиторий / usr, а затем скопировать пакет реализации в раскладку.

  • Установите / запустите greeter interface и client объединяются во второй экземпляр Virgo.Самый простой способ - скопировать интерфейсный пакет в репозиторий / usr, а затем скопировать клиентский пакет в раскладку.

  • Когда появится окно «Invoke Remote Greeter Service», введите строку (например, «foo») в поле «Имя» и нажмите «Invoke».

  • Первый экземпляр Virgo отображает следующие сообщения журнала трассировки (в файле serviceability / logs / log.log):

    Invoking: greetMe(foo)
    
  • Второй экземпляр Virgo показывает следующие сообщения журнала трассировки:

    [2012-04-05 14:14:56.766] INFO  Thread-29                    System.out                                                        *** Invoking greeter *** 
    [2012-04-05 14:14:56.970] INFO  Thread-29                    System.out                                                        greetMe("foo") returns: 
    [2012-04-05 14:14:56.971] INFO  Thread-29                    System.out                                                          Hola foo 
    [2012-04-05 14:14:56.971] INFO  Thread-29                    System.out                                                          Bonjour foo 
    [2012-04-05 14:14:56.972] INFO  Thread-29                    System.out                                                          Hoi foo 
    [2012-04-05 14:14:56.972] INFO  Thread-29                    System.out                                                          Hello foo 
    [2012-04-05 14:14:56.972] INFO  Thread-29                    System.out                                                        *** Opening greeter client dialog *** 
    
  • Просмотрите реестр служб второго экземпляра Virgo.

    osgi> vsh:service examine 245
    
    Properties:
        endpoint.id:
            http://localhost:9090/greeter
        objectClass:
            org.apache.cxf.dosgi.samples.greeter.GreeterService
        service.id:
            245
        service.imported:
            true
        service.imported.configs:
            org.apache.cxf.ws
    
    Publisher: cxf-dosgi-ri-singlebundle-distribution 1.3.0 [84]
    
    Consumer(s):
        cxf-dosgi-ri-samples-greeter-client 1.2.0 [86]
    

    Удаленный сервис GreeterService опубликован в реестре служб.

2 голосов
/ 09 января 2012

Возможно, это не совсем то, что вы ищете, но у меня есть все основания полагать, что инструкции в главе «Удаленные службы» в Enterprise OSGi в действии должны работать с Девой.

...