Как внедрить @Alternative с CDI из WAR в модуль JAR

TheConverter хотел бы использовать внедренный Config, созданный ConfigProducer. Где ConfigProducer в WAR, а TheConverter и Config в банке. К сожалению, похоже, что config не вводится, что приводит к javax.ejb.EJBException: javax.persistence.PersistenceException: Error attempting to apply AttributeConverter, вызванному NullPointerException в TheConverter.

Я использую WildFly 8.1.0, который использует Weld для внедрения CDI.

Я пытаюсь сделать что-то невозможное или это должно сработать?

example.war
  - ConfigProducer.class
      @Produces Config
  - WEB-INF/beans.xml (empty <beans></beans>)
  - META-INF/persistence.xml
  - WEB-INF/lib/entities.jar
     - Config.class
     - TheConverter.class
         implements AttributeConverter
         @Inject Config <-- FAIL
     - TheEntity.class
     - META-INF/beans.xml (empty <beans></beans>)
     - META-INF/orm.xml

person Kristof Neirynck    schedule 22.08.2014    source источник


Ответы (2)


Я не знаю, в чем именно твоя проблема. Но, безусловно, можно использовать эту комбинацию производителя и точки впрыска.

Также WildFly должен предупредить вас, если при обнаружении бина возникнут проблемы...

Возможно, вы можете добавить дополнительные пояснения к вашим файлам beans.xml, классу Producer и файлу persistence.xml.

person Dennis Stritzke    schedule 22.08.2014

Ваш beans.xml в вашем файле WAR должен идти в WEB-INF, а не META-INF

person John Ament    schedule 24.08.2014
comment
Упс. Я напечатал это здесь неправильно, но это в WEB-INF в моем проекте. - person Kristof Neirynck; 25.08.2014