2016-09-13 7 views
0

У меня есть простой вопрос о том, как запустить cdi в JBoss EAP 6.2 Pojos, которые вводятся с помощью @inject (из javax.annotation), всегда равны нулю.JBoss EAP 6.2 CDI beans.xml

Единственное, что я могу найти, это то, что мне нужно добавить beans.xml. Я добавил, что в папке META-INF моей банки (внутри уха). Тем не менее, я не вижу никаких записей cdi/weld, поэтому мне интересно, разрешен ли сварка вообще.

Мы используем пользовательский standalone.xml и jboss-deployment-structure.xml Я пробовал добавлять модуль сварки в эти файлы, но результат тот же: нет регистрации сварки и без инжекционных бобов.

Я создал образец проекта с ejb, который загружается @Startup и пытается ввести pojo. Когда я развертываю этот проект в том же контейнере, компонент инициализируется, но введенное поле равно null. enter image description here

+0

У вас есть несколько примеров, как вы определили классы и какие ошибки вы получаете? –

+0

Я уже получаю дрожь, когда вижу слово «EAR». Вам нужно указать структуру вашего развертывания -> на спецификацию JEE, должны быть разные загрузчики классов, используемые для разных частей EAR, и видимость ограничена (например, EJB не может видеть материал, находящийся в WAR, но наоборот работает). Это часто приводит к путанице, и CDI работает не так, как ожидалось. Добавьте дополнительные сведения о структуре развертывания и образце кода. Что касается 'beans.xml' - вы должны иметь его там, чтобы включить обнаружение bean-компонентов. – Siliarus

+0

@Siliarus Проект со скриншота развернут как взорванное ухо с одной банкой. EJB и pojo находятся в одной банке. Также есть beans.xml. Я попытаюсь создать единую банку ejb с теми же источниками. – bergvandenp

ответ

0

мне не хватало, чтобы в следующем standalone.xml

<extensions> 
    <extension module="org.jboss.as.weld"/> 
</extensions> 

<subsystem xmlns="urn:jboss:domain:weld:1.0"/> 
Смежные вопросы