4
我在我的web應用中使用Seam 2(也開始研究Java EE 6),幾天前我發現Seam的CDI可以在SE應用程序與焊接。根據Weld's文檔頁面Weld SE,設置很簡單。所以我嘗試用單個類HelloWeld,weld-se.jar和log4j jar來設置一個Eclipse項目。在Eclipse中運行一個非常簡單的Weld SE項目
@Singleton
public class HelloWeld
{
public void printHello(@Observes ContainerInitialized event, @Parameters List<String> parameters)
{
System.out.println("Hello Weld!");
}
}
我創建了一個新的Java應用程序的運行配置,並表示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
那麼我錯過了什麼?