2017-09-26 11 views
0

私は、vert.x、resteasyとweld-cdiを使ってサンプルアプリケーションが必要です。私はvert.xとresteasyを使うことができます。しかし、私は溶接cdiを統合する方法を知らない。restxasyとweldを持つVertx

私を助けてください。

答えて

0

weld-vertx projectをご覧ください。

すでにvertexで作業できる場合は、Weldで製織することができます。 プロジェクトにはいくつかの例があります。また、テストをチェックしてさらに多くの用途を確認することもできます。

0

私はResteasyとWeldでVertxを使用しています。それほど単純ではありませんが、私はそれをやり遂げました。あなたは必要になります。

  • org.jboss.resteasy:resteasy-cdiorg.jboss.resteasy:resteasy-vertx RESTEasyの統合モジュール
  • 溶接用org.jboss.weld.se:weld-se-coreモジュールのJava SEに
  • あなたがでCDIを設定する溶接+ VERTX統合

ためorg.jboss.weld.vertx:weld-vertx-core溶接+ 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 
}); 

注意Vert.xのCDI要求コンテキストを作成

  • 伝播CDIとRESTEasyのスレッド-LOを要求:あなたはまだのための微調整が必​​要であることVert.x非同期ハンドラのCALは
  • は、あなたがそれらを必要とする場合、私はあまりにもそのためにあなたのコードを与えることができビーンCDIとの検証とRESTEasyの

を設定します。

関連する問題