首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vertx与resteasy和焊缝

Vertx与resteasy和焊缝
EN

Stack Overflow用户
提问于 2017-09-26 08:27:15
回答 2查看 1K关注 0票数 0

我需要一个示例应用程序使用vert.x,resteasy和焊缝-cdi。我可以使用vert.x和resteasy。但我不知道如何集成焊接-cdi。

请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2017-09-26 10:41:12

你可能想看看焊接-vertx项目.

如果您已经可以使用vertx,这将允许您在焊接编织。该项目包含一些示例,您还可以检查测试以查看更多的用途。

票数 0
EN

Stack Overflow用户

发布于 2017-09-26 11:02:01

我用Vertx和Resteasy和Weld。并不是那么简单,但我已经做到了。你需要:

  • org.jboss.resteasy:resteasy-cdiorg.jboss.resteasy:resteasy-vertx重构集成模块
  • Java上焊接的org.jboss.weld.se:weld-se-core模块
  • 焊接+ Vertx集成的org.jboss.weld.vertx:weld-vertx-core

使用Weld+Vertx扩展设置CDI:

代码语言:javascript
运行
复制
Weld weld = new Weld();
weld.addExtension(new VertxExtension());
weld.initialize();

当您部署Resteasy时,您希望使用CDI实例部署它:

代码语言:javascript
运行
复制
VertxResteasyDeployment deployment = new VertxResteasyDeployment();
ResteasyCdiExtension cdiExtension = CDI.current().select(ResteasyCdiExtension.class).get();
deployment.setActualResourceClasses(cdiExtension.getResources());
deployment.setInjectorFactoryClass(CdiInjectorFactory.class.getName());
deployment.getActualProviderClasses().addAll(cdiExtension.getProviders());
deployment.start();

您希望通过在阻塞块中注册使用者来设置Vertx-Weld扩展:

代码语言:javascript
运行
复制
// Setup the Vertx-CDI integration
VertxExtension vertxExtension = CDI.current().select(VertxExtension.class).get();
BeanManager beanManager = CDI.current().getBeanManager();
// has to be done in a blocking thread
vertx.executeBlocking(future -> {
    vertxExtension.registerConsumers(vertx.getDelegate(), BeanManagerProxy.unwrap(beanManager).event());
    future.complete();
}, res -> {
    // you can now create your HTTP server
});

请注意,您仍然需要对以下内容进行调整:

  • 在Vert.x请求上创建CDI请求上下文
  • 在Vert.x异步处理程序上传播CDI和Resteasy线程-局部变量
  • 用CDI和Resteasy设置Bean验证

如果你需要的话,我也可以给你密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46421402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档