2010-08-10 5 views
4

저는 웹 어플리케이션에서 Seam 2 (Java EE 6을 살펴보기 시작했습니다)를 사용 해왔고 며칠 전에 Seam의 CDI가 SE에서 활용 될 수 있다는 것을 알았습니다 용접과 응용 프로그램. Weld 's Documentation 페이지 Weld SE에 따르면 설치가 쉽습니다. 그래서 HelloWeld, weld-se.jar 및 log4j jars라는 단일 클래스로 Eclipse 프로젝트를 설정하려고했습니다. Eclipse에서 매우 간단한 Weld SE 프로젝트 실행하기

@Singleton 
public class HelloWeld 
{ 
    public void printHello(@Observes ContainerInitialized event, @Parameters List<String> parameters) 
    { 
     System.out.println("Hello Weld!"); 
    } 
} 

나는 새로운 자바 응용 프로그램 실행 구성을 생성하고 기본 클래스로 org.jboss.weld.environment.se.StartMain을 지적했다. 제가 프로젝트를 실행했을 때, 놀랍지도 않게, HelloWeld가 결코 호출되지 않았다는 것을 알았습니다. 내가 가지고있는 것은 Weld가 올바르게 부팅되었다는 표시로 몇 가지 로그 항목이었습니다.

11:54:39,397 INFO [weld.Version] WELD-000900 1.0.1 (Final) 
11:54:39,428 INFO [weld.Bootstrap] WELD-000101 Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously. 
11:54:39,944 WARN [model.InterceptionTypeRegistry] Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled 
11:54:39,944 WARN [model.InterceptionTypeRegistry] Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled 

그래서 나는 무엇이 누락 되었습니까?

답변

6

빈 보관 파일로 만들어야합니다. 빈 META-INF/beans.xml을 클래스 경로에 추가하십시오.

관련 문제