1

JettyとWicketが組み込まれたスタンドアロンアプリケーションがあります。
注射にはCDIを使いたいのですが。

だから私は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, "/*" );
4

1 に答える 1

1

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

于 2011-04-17T14:58:12.047 に答える