2011-04-09 4 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

Возможно, я нашел - [сварная калитка] (http://docs.jboss.org/weld/reference/1.0.0/en-US/html/viewlayers.html#d0e5200) –

+0

О нет. Weld-wicket теперь представляет собой шов-калитка, чьи документы относятся к сварной кассете, которая описывает только конфигурацию XML :( –

ответ

1

Добавление ресурсов-ENV-исх программно не имеет смысла. Точка JavaEE refs заключается в том, чтобы отделить разработчика от развертывателя: разработчик объявляет ссылку, а развертыватель связывает ссылку с управляемым ресурсом в среде. Если у вас нет или требуется роль развертывателя, вам также не нужен ресурс-env-ref: просто посмотрите на целевой объект самостоятельно (для интеграции с CDI я считаю, что это будет метод @Produces).

+0

Ну, вы, вероятно, правы. Я видел только пример в документах и ​​пытался заставить его работать, потому что В конце концов, я использовал чей-то патч, который хранит и получает BeanManager из ServletContext. –

+0

Итак, в конце концов, использование JNDI API напрямую разрешило это. –

+0

@Ondra Žižka вы можете разместить свой код «Я должен решить что-то очень похожее –

 Смежные вопросы

  • Нет связанных вопросов^_^