我有一个嵌入式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, "/*" );
答案 0 :(得分:1)
以编程方式添加resource-env-ref没有意义。 JavaEE refs的要点是将开发人员与部署者分开:开发人员声明了一个引用,并且部署者将引用绑定到环境中的托管资源。如果您没有或不需要部署角色,那么您也不需要资源-env-ref:只需自己查找目标对象(对于CDI集成,我认为这将是@Produces方法)。 / p>