2015-01-03 3 views
3

У меня есть веб-приложение (файл войны), которое зависит (Maven) от другого проекта (файл jar), который использует Spring для инъекции зависимостей. Поэтому в этом другом проекте у меня есть несколько XML-файлов, чтобы объявить мои бобы, в моем случае бизнес-объекты. Я начал использовать WildFly вместо Tomcat/Jetty, и, судя по всему, это называется Weld, ответственным за DI. Мое веб-приложение не использует Spring (пока), это просто простой API RESTful от Джерси.
Я хочу, чтобы мои бизнес-объекты были инъекционными (@Inject) в моих ресурсах (контроллерах).Впрыск весенней зависимости с WildFly

Как сделать мои бобы доступными, что означает, как мы смешиваем Spring DI и WildFly DI?

Сейчас в моем веб-приложение проекта У меня есть файл WEB-INF/beans.xml с этим:

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:weld="http://jboss.org/schema/weld/beans" 
    xsi:schemaLocation=" 
    http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd 
    http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd 
    bean-discovery-mode="all"> 
</beans> 

Но когда я пытаюсь развернуть, для этого кода:

@Inject SomeBO myBO; 

Я получаю эту ошибку:

WELD-001408: Unsatisfied dependencies for type SomeBO with qualifiers @Default

Спасибо.

EDIT
мне нужно импортировать мои бобы с XML-файлов, я не хочу комментировать их, например, у меня есть bo.xml файл (Spring бобы), который содержит такое заявление:

<bean id="com.xxx.bo.SomeBO" parent="com.xxx.bo._AbstractBO"> 
     <property name="target"> 
      <bean class="com.xxx.bo.SomeBOImpl"> 
       <property name="DAO" ref="com.xxx.dao.SomeDAO"/> 
      </bean> 
     </property> 
    </bean> 

ответ

0

WildFly реализует Java EE Spec, что означает, что он обеспечивает реализацию для CDI. В случае с WildFly используется эталонная реализация, которая является Weld. Есть несколько tutorials для Java EE 6, которые должны хорошо объяснять CDI.

Что касается вашей ошибки, возможно, вам просто нужно будет аннотировать вашу версию SomBO с помощью @Named или действительной аннотации CDI, чтобы сделать его управляемым бидом CDI.

+0

См. Мое редактирование, мне нужно использовать объявление xml, то есть мне нужно сделать WildFly/Weld информацией об этих файлах. –

+0

Возможно, их придется аннотировать для использования CDI. Честно говоря, я не уверен, что происходит в файле beans.xml, поэтому, возможно, он настраивается там. –

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