4

谁能指出有关如何配置 Eclipse Virgo 3.0x 中包含的远程可访问服务的分步教程?我知道存在标准等,但我找不到任何示例,它似乎不包含一堆挥手而不是特定步骤以及要下载的工作代码/配置。我不在乎这个例子是使用 Apache CXF、Eclipse ECF 还是其他任何东西。我想要的是 RMI 的等价物,因为在客户端和服务器端开发人员看来,传输和有线协议都被抽象为纯 Java(采取了一些自由)。

哪些包必须部署到 Virgo 才能支持远程处理?哪些 Spring-ish 配置设置有效?客户端类路径上必须有哪些 jar?等等等等?

4

2 回答 2

4

我使用了 Apache CXF DOSGI 并且很容易让它工作。

  • 从这里下载 CXF 单包分发- 我使用的是 1.3.0。
  • 解压 Virgo(为了简单起见,我使用了内核发行版),将 CXF 包复制到 Pickup,然后启动 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
    

    就是这样,但要检查它是否正常工作,剩下的步骤会运行欢迎程序示例......

  • 在第一个 Virgo 实例中安装/启动 greeter接口实现包。最简单的方法是将接口包复制到repository/usr,然后将实现包复制到pickup。

  • 在第二个 Virgo 实例中安装/启动欢迎界面客户端包。最简单的方法是将接口包复制到repository/usr,然后将客户端包复制到pickup。

  • 当“调用远程问候服务”窗口出现时,在名称字段中输入一个字符串(例如“foo”)并单击“调用”。

  • 第一个 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 已在服务注册表中发布。

于 2012-04-10T15:35:49.663 回答
2

这可能不是您正在寻找的,但我完全有理由相信Enterprise OSGi in Action中远程服务一章中的说明应该适用于 Virgo。

于 2012-01-09T15:40:15.670 回答