Tenho uma situação específica na qual preciso injetar o datasource no DAO, porém, não posso usar JPA por questões de especificação do projeto. Isto é, todo SQL é feito no tapa, mas gostaria de injetar, pelo menos a conexão. Eu sei que existe a anotação @Resource, mas não está funcionando. Estou tentando conforme abaixo
@Stateless
public class ReportDAO {
@Resource(lookup="java:/DataSourceDS")
private DataSource ds;
Criei o datasource no WildFly conforme descrito na aula. Quando faço deploy recebo mensagem:
15:18:26,998 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {
"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.ExampleDS"],
"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.manager.manager.DefaultDataSource is missing [jboss.naming.context.java.jboss.datasources.ExampleDS]"]
}
Notem que não faço referência alguma ao datasource ExampleDS.
O que poderia ser?
Um detalhe: não tenho persistence.xml na minha aplicação, é necessário para conseguir injetar o DataSource com @Resource?