Java SE и сварка? - PullRequest
       56

Java SE и сварка?

0 голосов
/ 10 октября 2018

Я сейчас тестирую CDI 2.0 для Java SE (сварка) - я прочитал, что не нужно использовать beans.xml, поэтому я попробовал это:

Hallo.class:

public class Hallo {

   public String sayHallo() {
      return "hallo";
   }
}

Тогда у меня есть Test.class:

@ApplicationScoped
public class Test {

@Inject Hallo hallo;

   public String sayHallo() {
      return hallo.sayHallo() + " from Test";
   }
}

И, наконец, я пытаюсь использовать CDI:

public class Demo {

public static void main(String[] args) {
    SeContainerInitializer initializer = SeContainerInitializer.newInstance();
    /** disable discovery and register classes manually */
    try (SeContainer container = initializer.disableDiscovery().addPackages(Demo.class).initialize()) {
        Test test = container.select(Test.class).get();
        test.sayHallo();
    }
}
}

К сожалению, это не работает,Я получаю следующие сообщения:

10 октября, 2018 14:22:04 org.jboss.weld.bootstrap.WeldStartup INFO: WELD-000900: 3.0.5 (Final)
Okt 10, 2018 14:22:05 org.jboss.weld.bootstrap.WeldStartup startContainer ИНФОРМАЦИЯ: WELD-000101: Транзакционные сервисы недоступны.Инъекция @Inject UserTransaction недоступна.Наблюдатели за транзакциями будут вызываться синхронно.
Okt 10, 2018 14:22:05 org.jboss.weld.environment.se.WeldContainer fireContainerInitializedEvent INFO: WELD-ENV-002003: Сварной контейнер SE 5adc2948-acd7-423c-84dc-c1463534c309 инициализирован
Okt 10, 2018 14:22:05 PM org.jboss.weld.environment.se.WeldContainer shutdown ИНФОРМАЦИЯ: WELD-ENV-002001: Сварочный контейнер SE 5adc2948-acd7-423c-84dc-c1463534c309 выключен

Чего мне не хватает?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Контейнер CDI работает нормально.
Transactional services not available утверждает, что вы не работаете в Диспетчере транзакций, который (почти) по умолчанию будет работать на сервере приложений.

...