Запуск очень простого проекта Weld SE в Eclipse - PullRequest
4 голосов
/ 10 августа 2010

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

@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

Так чего мне не хватает?

1 Ответ

7 голосов
/ 10 августа 2010

Вы должны сделать это бобовым архивом.Добавьте пустой META-INF / beans.xml в ваш путь к классам.

...