2011-04-09 13 views
0

私は、JettyとWicketが組み込まれたスタンドアロンアプリケーションを持っています。
注射用にCDIを使用したいと思います。Jetty:プログラムで<resource-env-ref>を追加する

だから私はhttp://docs.jboss.org/weld/reference/latest/en-US/html/environments.html#d0e5286
を見つけたので、これをプログラムで追加しようとしていますが、かなり複雑です。

どのようにコードするのですか?

私が見つけた

他のソースは、次のとおりです。

これまでのところ、私が持っている:

Server server = new Server(8080); 
    Context ctx = new Context(server, "/", Context.NO_SECURITY | Context.SESSIONS); 


    try { 
    //BeanManager 
    new org.mortbay.jetty.plus.naming.Resource(ctx, "BeanManager", 
     new javax.naming.Reference(
      "javax.enterprise.inject.spi.BeanManager", 
      "org.jboss.weld.resources.ManagerObjectFactory", null) 
    ); 
    } catch (NamingException ex) { 
    log.error(...); 
    } 


    // Wicket. 
    final ServletHolder wicketSH = new ServletHolder(new MyReloadingWicketServlet()); 
    wicketSH.setInitParameter("applicationClassName", WicketApplication.class.getName()); 
    ctx.addServlet(wicketSH, "/*"); 
+0

おそらく私は見つけました - [weld-wicket](http://docs.jboss.org/weld/reference/1.0.0/en-US/html/viewlayers.html#d0e5200) –

+0

Oh no。 Weld-wicketは今やseam-wicketであり、そのドキュメントはweld-wicketを参照しています。これはXML設定のみを記述しています:( –

答えて

1

は、プログラムのresource-env-refを追加意味がありません。 JavaEEの参考文献のポイントは、デベロッパーをデプロイヤーから分離することです。デベロッパーは参照を宣言し、デプロイヤーはその参照を環境内の管理対象リソースにバインドします。デプロイヤーの役割を持たない、または必要としない場合は、resource-env-refは必要ありません。自分でターゲットオブジェクトを探します(CDI統合の場合、@Producesメソッドと思われます)。

+0

あなたはおそらく正しいでしょう。私はドキュメントの例を見ただけで、 Seam-WicketのWeld JNDIルックアップは機能しませんでした。最後にServletContextからBeanManagerを格納して取得するパッチを使用しました。 –

+0

最後に、JNDI APIを使用して直接解決しました。 –

+0

@OndraŽižkaあなたのコードを投稿できますか? ?私は非常に似たようなものを解決しなければならない –

関連する問題