2014-12-01 4 views
0

У меня есть своеобразная проблема с CDI. Применение развертывается на GlassFish 3.0.1CDI :: Ошибка развертывания с @Inject & Qualifier для нескольких проектов maven

Сценарий, как показано ниже

Maven proj1 :: Мой JAX-RS имеет код EJB (через интерфейс) инъекции вместе с Qualifier

class A_jaxrs{ 

@Inject @Demo 
    DemoManager demoManager; 

} 

Maven proj2 :: Все интерфейс определены в проекта2 вместе с классификатором

class interface DemoManager{ 
} 

@Qualifier 
public @interface Demo{ 
} 

Maven proj3 :: Stateless боба определяется

@Demo 
@Stateless 
class DemoManagerBean implements DemoManager{ 

@Override 
public void demoString() { 
    System.out.println("Year 2014"); 
} 

} 

Пустой beans.xml включен во всех проектах Всех проекты (как банки) упакованы в ухе

Но мое развертывание уха терпит неудачу с отказом инъекции .....

Netbeans также сообщает об ошибке неудовлетворительной зависимости в точке впрыска

Любая помощь? Однако тот же сценарий работает с @Ejb («...»)

+0

вам нужно использовать EAR ли? Можете ли вы развернуть WAR с теми же JAR в нем? –

ответ

0

Во-первых, почему вы используете старую версию Glassfish? В нем много ошибок. Не могли бы вы использовать более свежий? Как 4.0?

Во-вторых ваша отборочные аннотация неправильно, он должен быть:

@Qualifier 
@Retention(RetentionPolicy.RUNTIME) 
@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER }) 
public @interface Demo{ 
} 
Смежные вопросы