首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Java EE 7堆栈上获取Spring数据JPA + CDI

无法在Java EE 7堆栈上获取Spring数据JPA + CDI
EN

Stack Overflow用户
提问于 2013-11-01 01:34:22
回答 1查看 1.7K关注 0票数 3

我正在尝试让Spring data JPA与EJB和CDI (Java EE 7)协同工作。好吧,我遵循了文档(http://docs.spring.io/spring-data/jpa/docs/1.4.2.RELEASE/reference/html/jpa.repositories.html#jpd.misc.cdi-integration),但是仍然不能@在无状态的ejb中注入我的存储库。代码如下:

代码语言:javascript
复制
@Configuration
@EnableJpaRepositories
public class EntityManagerFactoryProducer {

@Produces
@ApplicationScoped
public EntityManagerFactory entityManagerFactory() {
    return Persistence.createEntityManagerFactory("mypu");
}

public void close(@Disposes EntityManagerFactory entityManagerFactory) {
    entityManagerFactory.close();
}
}

$

代码语言:javascript
复制
public interface TipoFolhaRepository extends JpaRepository<TipoFolha, Long> {

List<TipoFolha> findByNome(String nome);

TipoFolha findByTipo(String tipo);
}

$

代码语言:javascript
复制
@Stateless
public class TipoFolhaFacade extends AbstractFacade<TipoFolha> {

@Inject
TipoFolhaRepository tpRepo;

@Override
public  List<TipoFolha> findAll(){
    return tpRepo.findAll();
}
}

跟随错误。WELD-001408在注入点具有限定符@ TipoFolhaRepository的类型默认不满足的依赖项[BackedAnnotatedField @Inject com.mycompany.ejb.TipoFolhaFacade.tpRepo]

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-01-03 19:22:08

您需要在存储库类所在的模块中使用bean-discovery-mode="all"启用CDI。这意味着在META-INF文件夹中创建一个包含以下内容的beans.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
       http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       bean-discovery-mode="all">
</beans>

this Oracle blogpost中可以找到对不同发现模式的简短说明

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19713128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档