当我尝试将我的应用程序部署到 Glassfish Server 时出现此异常:
org.jboss.weld.exceptions.DeploymentException:WELD-001409 在注入点 [[BackedAnnotatedField] @Inject com.tugay.fup.web.MyUploadedFilesBean.fileReferenceDao] 带有限定符 [@Default] 的类型 [FileReferenceDao] 的不明确依赖项。可能的依赖项 [[Session bean [class com.tugay.fup.core.dao.FileReferenceDao with qualifiers [@Any @Default]; 本地接口是 [FileReferenceDao],会话 bean [class com.tugay.fup.core.dao.FileReferenceDao 带有限定符 [@Any @Default];本地接口是 [FileReferenceDao]]]
有趣的部分是
可能的依赖项 [[Session bean [class com.tugay.fup.core.dao.FileReferenceDao with qualifiers [@Any @Default]; 本地接口是 [FileReferenceDao],会话 bean [class com.tugay.fup.core.dao.FileReferenceDao 带有限定符 [@Any @Default];本地接口是 [FileReferenceDao]]]
这是怎么回事?
我只有一个 FileReferenceDao,它没有接口或其他任何东西。它不扩展任何其他类。这就是我使用它的方式:
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@RequestScoped
public class MyUploadedFilesBean {
@Inject
FileReferenceDao fileReferenceDao;
直到 15 分钟前一切正常。
我尝试将 JSF 托管 bean 与 CDI bean 混合,它不起作用,我回滚了。现在我得到了这个例外。
@Stateless public class FileReferenceDao {
@PersistenceContext(unitName = "Persistence")
EntityManager em;