2013-12-20 3 views
1

Как я могу запустить приложение с CDI, которое использует Weld в среде обычного Java SE, которая просто запускается из командной строки и не имеет фоновой фотографии Glassfish или Tomcat? С Weld 1.x вы можете сделать что-то вродеBootstrap Weld 2.1.0 from void main

public static void main(String[] args) { 
    final WeldContainer weld = new Weld().initialize(); 
    service = weld.instance().select(MyService.class).get(); 
} 

Но в Weld 2.x отсутствует инициализация().

я могу сделать что-то вроде этого:

@ApplicationScoped 
public class Main { 
    @Inject 
    Foo foo; 

    public void main(@Observes ContainerInitialized event) { 
     System.out.println("Starting application"); 
    } 
} 

Это впрыснуть Foo, но я хочу, чтобы упаковать всю мою заявку в банку, чтобы быть использован в другое приложение, не нужно ждать, пока сварить фактически начать работать. Поэтому я в основном хочу, чтобы правильно инициализировать Weld.

ответ

1

Bootstrapping Weld SE не изменился между Weld 1.x и 2.x, см. reference manual.

Просто убедитесь, что импортировали org.jboss.weld.environment.se.Weld, а не новый класс org.jboss.weld.Weld.

+0

Спасибо. Я использовал автоматический импорт из Netbeans и не проверял свой импорт. – iuiz

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