2010-08-10 3 views
4

Я использовал Seam 2 (также начал изучать Java EE 6) в своих веб-приложениях, и пару дней назад я узнал, что CDI Seam можно использовать в SE приложение с Weld. Согласно странице документации Weld для Weld SE установка тривиальна. Поэтому я попытался настроить проект Eclipse с помощью одного класса HelloWeld, weld-se.jar и логов log4j.Запуск очень простого проекта Weld SE в Eclipse

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

Я создал новый Java Application Configuration Run и указано org.jboss.weld.environment.se.StartMain в качестве основного класса. Когда я запустил проект, я узнал, без всякого удивления, что-то никогда, что HelloWeld никогда не назывался. Все, что я получил, было несколько записей в журнале как указание на правильность правильной работы сварки:

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 в свой путь к классам.

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