我需要一个示例应用程序使用vert.x,resteasy和焊缝-cdi。我可以使用vert.x和resteasy。但我不知道如何集成焊接-cdi。
请帮帮我。
发布于 2017-09-26 10:41:12
你可能想看看焊接-vertx项目.
如果您已经可以使用vertx,这将允许您在焊接编织。该项目包含一些示例,您还可以检查测试以查看更多的用途。
发布于 2017-09-26 11:02:01
我用Vertx和Resteasy和Weld。并不是那么简单,但我已经做到了。你需要:
org.jboss.resteasy:resteasy-cdi和org.jboss.resteasy:resteasy-vertx重构集成模块org.jboss.weld.se:weld-se-core模块org.jboss.weld.vertx:weld-vertx-core使用Weld+Vertx扩展设置CDI:
Weld weld = new Weld();
weld.addExtension(new VertxExtension());
weld.initialize();当您部署Resteasy时,您希望使用CDI实例部署它:
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扩展:
// 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
});请注意,您仍然需要对以下内容进行调整:
如果你需要的话,我也可以给你密码。
https://stackoverflow.com/questions/46421402
复制相似问题