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 的重点是将开发者和部署者分开:开发者声明一个引用,部署者将引用绑定到环境中的托管资源。如果您没有或不需要部署者角色,那么您也不需要资源环境引用:只需自己查找目标对象(对于 CDI 集成,我认为这将是一个 @Produces 方法)。

于 2011-04-17T14:58:12.047 回答