我需要一個使用vert.x,resteasy和weld-cdi的示例應用程序。我可以使用vert.x和resteasy。但我不知道如何整合weld-cdi。Vertx with resteasy and weld
請幫幫我。
我需要一個使用vert.x,resteasy和weld-cdi的示例應用程序。我可以使用vert.x和resteasy。但我不知道如何整合weld-cdi。Vertx with resteasy and weld
請幫幫我。
你可能想看看weld-vertx project。
如果您已經可以使用vertx,這將允許您編織Weld。 該項目包含一些示例,您還可以檢查測試以查看更多用途。
我使用Vertx與Resteasy和Weld。這不是那麼簡單,但我已經設法做到了。你將需要:
org.jboss.resteasy:resteasy-cdi
和org.jboss.resteasy:resteasy-vertx
RestEasy的集成模塊org.jboss.weld.se:weld-se-core
模塊焊接在Java SEorg.jboss.weld.vertx:weld-vertx-core
用於焊接+ Vertx整合您設置了CDI與Weld + Vertx擴展:
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焊擴展:
// 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
});
注你仍然需要調整爲:
我可以給你的代碼是太多,如果你需要的人。