Criei um projeto EJB 3.2 para rodar no wildfly 9 com intuito de usar o recurso de Timer. Depois do projeto pronto, precisei criar um Produtor (@Produces) para uma classe qualquer. Estranhamente o método com esta anotação @Produces não chega nem a ser executado e o deploy começa a falhar. Em tempo de desenvolvimento o eclipse dá Waring no @Inject com a seguinte mensagem:
No bean is eligible for injection to the injection point [JSR-346 §5.2.2]
Exemplo de Código:
#Classe onde será feita a injeção
@Stateless
public class Servico {
@Inject
QualquerInterface q;
public void teste(){
q.teste();
}
}
#Produtor
public class Produtor {
@Produces
public QualquerInterface produz(){
System.out.println("Passei no produtor");
return new Qualquer();
}
}
#Classe que quero construir a partir do método Produtor
public class Qualquer implements QualquerInterface {
@Override
public void teste(){
System.out.println("Qualquer teste");
}
}
Segue meu POM.
UTF-8<!-- JBoss dependency versions -->
<version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>
<!-- Define the version of the JBoss BOMs we want to import to specify tested stacks. -->
<version.jboss.bom>8.2.1.Final</version.jboss.bom>
<!-- other plugin versions -->
<version.compiler.plugin>3.1</version.compiler.plugin>
<!-- maven-compiler-plugin -->
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-hibernate</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Import the Common Annotations API (JSR-250), we use provided scope as the API is included in JBoss WildFly -->
<dependency>
<groupId>org.jboss.spec.javax.annotation</groupId>
<artifactId>jboss-annotations-api_1.2_spec</artifactId>
<scope>provided</scope>
</dependency>
<!-- Import the JPA API, we use provided scope as the API is included in JBoss WildFly -->
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Import the EJB API, we use provided scope as the API is included in JBoss WildFly -->
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
<scope>provided</scope>
</dependency>
Você poderia por gentileza me ajudar ?