私は単純なことをしようとしています。修飾されたString
(またはFile
) を CDI に挿入します。
だから私は修飾子を持っています:
@Retention(RetentionPolicy.RUNTIME)
@Target({FIELD,METHOD,PARAMETER,TYPE})
@Qualifier
public @interface FilesRepositoryPath {}
私はプロデューサーを持っています:
public class FilesRepositoryPathProducer {
@Produces
@FilesRepositoryPath
public String getRepositoryDirectory() {
return "path.taken.from.configuration";
}
}
そして、私はそれを使用しようとしています:
@ApplicationScoped
public class FilesRepository {
@Inject
public FilesRepository(@FilesRepositoryPath String filesDirectory) {
//Do some stuff
}
}
ただし、WELD はこの Bean をインスタンス化できません。例外が発生しています:
org.jboss.arquillian.impl.event.FiredEventException: org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001410 The injection point [field] @Inject private za.co.fnb.commercial.dms.file.FilesRepositoryBeanTest.repo has non-proxyable dependencies
プロキシできないことはわかってString
いますが、なぜ WELD がプロキシを作成したいのですか? スコープが@Dependent
あるため、とにかくプロキシを作成しないでください。どうすればそれを機能させることができますか?