0
import rx.*
class Foo extends Verticle {
    def start() {

        // This works:  prints 1
        Observable.create({ s -> s.onNext(1); s.onCompleted()}).subscribe({println it});

        container.deployVerticle("groovy:path.to.Bar")
    }
}

class Bar extends Verticle {
    def start() {
         // This fails
         Observable.create({ s -> s.onNext(1); s.onCompleted()}).subscribe({println it});
    }
}

Groovy verticle (Bar.start) groovy.lang.MissingMethodException 中的异常:没有方法签名:静态 rx.Observable.create() 适用

类加载器问题?没有把握。 Vertx 文档建议container.deployVerticle verticles 将使用父类加载器。

马文:

  <dependency>
      <groupId>com.netflix.rxjava</groupId>
      <artifactId>rxjava-core</artifactId>
      <version>0.17.2</version>
  </dependency>

  <dependency>
      <groupId>com.netflix.rxjava</groupId>
      <artifactId>rxjava-groovy</artifactId>
      <version>0.17.2</version>
  </dependency>

Vert.x 版本:2.1M5

谢谢

4

1 回答 1

0

小心可用的 API。在 RxJava wiki 中描述了很多功能,但其中一些没有在语言适配器中实现。我确信在 Scala 中就是这种情况,但在 Groovy 中可能也是如此。有时方法甚至有不同的名称,例如 Java 中的“switchOnNext”和 Scala 中的“switch”。

于 2014-06-28T12:00:59.197 回答