当我尝试将我的应用程序部署到Glassfish服务器时,我收到此异常:
org.jboss.weld.exceptions.DeploymentException:WELD-001409不明确 类型为[FileReferenceDao]的依赖项,带有限定符[@Default] at 注入点[[BackedAnnotatedField] @Inject com.tugay.fup.web.MyUploadedFilesBean.fileReferenceDao。可能 dependencies [[Session bean [class 带有限定词的com.tugay.fup.core.dao.FileReferenceDao [@Any @默认];本地接口是[FileReferenceDao],Session bean [class com.tugay.fup.core.dao.FileReferenceDao with qualifiers [@Any @默认];本地接口是[FileReferenceDao]]]
有趣的部分是
可能的依赖[[Session bean [class 带有限定词的com.tugay.fup.core.dao.FileReferenceDao [@Any @默认];本地接口是[FileReferenceDao],Session bean [class com.tugay.fup.core.dao.FileReferenceDao with qualifiers [@Any @默认];本地接口是[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;