2013-12-20 2 views
1

일반적인 Java SE 환경에서 Weld를 사용하는 CDI로 응용 프로그램을 시작하는 방법은 무엇입니까? 단순히 명령 행에서 시작하고 백그라운드에서 Glassfish 또는 Tomcat을 사용하지 않으시겠습니까? Weld 1.x에서는 다음과 같이 할 수 있습니다.부트 스트랩 용접 2.1.0을 무효로

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

그러나 Weld 2.x에서는 initialize()가 없습니다.

나는 이런 식으로 뭔가 할 수 있습니다

@ApplicationScoped 
public class Main { 
    @Inject 
    Foo foo; 

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

이 푸를 주입 것,하지만 난에 용접 기다릴 필요가없는 다른 응용 프로그램에서 사용되는 항아리에 내 모든 응용 프로그램을 포장 할 실제로 실행을 시작합니다. 그래서 기본적으로 Weld를 올바르게 초기화하는 방법을 원합니다.

답변

1

부트 스트래핑 용접 SE는 용접 1.x와 2.x간에 변경되지 않았습니다 (reference manual 참조).

새 클래스 org.jboss.weld.Weld이 아닌 org.jboss.weld.environment.se.Weld을 가져 오십시오.

+0

감사합니다. Netbeans에서 자동 가져 오기를 사용하고 가져 오기를 확인하지 않았습니다. – iuiz

관련 문제