Во-первых, вы используете @Named
, как старый шов @Name
.Эти две аннотации имеют две разные цели.В CDI @Named
используется только для предоставления имени, которое можно использовать для ссылки на компонент из фаслета.При инъекции бин идентифицируется как тип и, необязательно, с помощью квалификатора.Поскольку вы вводите String
, скорее всего, необходим квалификатор.Вы можете создать аннотацию квалификатора, как описано здесь , и добавить к ней свой производитель и точку внедрения:
Если вы создали классификатор @Bidule
@Stateless
public class Neo4JEJB implements Neo4JEJBInterface{
private @Inject @Bidule String bidule = "no bidule injected";
}
public class Producer {
public @Produces @Bidule String createBidulateur() {
return "the bidule that should always work";
}
}
Также,Я думаю (но не уверен), что bean-компонент, содержащий метод продюсера, должен быть ограничен ( см. Здесь ).