是否可以生成引用 rx 顶点实例的 vertx 服务代理?



我正在尝试开发一个数据库服务代理,并使用扩展io.vertx.reactivex.core.AbstractVerticle的顶点,以便我可以在数据库调用中使用rxJava语义。 问题是,当我代码生成服务代理时,我得到这个:

ServiceVertxEBProxy.java:[37,1] a type with the same simple name is already defined by the single-type-import of io.vertx.core.Vertx

数据库服务负责处理共享数据库客户端,我通过以下方式执行此操作:

public Single<SQLConnection> getConnection()
{
JDBCClient dbClient = JDBCClient.createShared( vertx, CONFIG, DATASOURCE );
return dbClient.rxGetConnection().flatMap( conn -> {
Single<SQLConnection> connectionSingle = Single.just( conn );
return connectionSingle.doFinally( conn::close );
} );
}

是否可以使用 @ProxyGen 创建在服务中引用 rxJava 的代理客户端?

作为参考,接口声明工厂方法,以按照 vertx.io 文档实例化服务。

import io.vertx.reactivex.core.Vertx;
@ProxyGen
public interface ChatDbService
{
static ChatDbService create( Vertx vertx )
{
return new ChatDbServiceImpl( vertx );
}
static ChatDbService createProxy( Vertx vertx, String address )
{
return new ChatDbServiceVertxEBProxy( vertx.getDelegate(), address );
}
} 

帮助和见解将不胜感激。

服务代理生成无法使用 RxJava,因为它使用 Vert.x 异步模型。由于您没有发布ServiceVertx界面,因此实际上不可能为您提供有关您的应用程序的进一步建议,如果可以的话,我们可以进一步详细说明。

不确定这是否是您想要的,但我们希望@ProxyGen为我们生成一个 Rxized API,并偶然发现了一个解决方案。我们发现你需要包含此依赖项,然后@ProxyGen将使用 Rxified 生成的服务创建一个名为reactivex的包。

<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java2</artifactId>
</dependency>

最新更新