私の現在の仕事はJava EEアプリケーションをJboss 7サーバーからWildfly 10に移行することです。私はCDIとSpring-Dataの統合に問題があります。私はJboss 7で働いたのと同じ設定を使用しています。アプリケーションをWildflyサーバーにデプロイしようとすると、春のデータリポジトリをいくつかのCDIとEJB Beanに挿入するというエラーが発生します。WELD-001408:Springデータからのリポジトリの満足していない依存関係
エラーは次のようになります。
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type StudentExtTrainingRepository with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private pl.mynetwork.mylearning.logic.historyTraining.HistoryTrainingService.studentExtTrainingRepository
at pl.mynetwork.mylearning.logic.historyTraining.HistoryTrainingService.studentExtTrainingRepository(HistoryTrainingService.java:0)
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:359)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
私は私がここにhttps://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpd.misc.cdi-integrationが、それは仕事をdoesntのwildflyに見つけた、春のデータ設定ガイドに従って、自分のアプリケーションを構成しました。
は、私はファイルがMETA-INFディレクトリの下に私のプロジェクトにbeans.xmlの私が持っているもちろん、この
@Dependent
public class SpringDataConfigurationProducer {
@Produces
@ApplicationScoped
public EntityManagerFactory createEntityManagerFactory() {
return Persistence.createEntityManagerFactory("base-pu");
}
@Produces
@RequestScoped
public EntityManager createEntityManager(EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
}
のようなエンティティマネージャのプロデューサークラスを持っています。
リポジトリ、注入しようとしているイムは、次のようになります。私はリポジトリを注入したい
@Repository
@Transactional
@Dependent
public interface StudentExtTrainingRepository extends JpaRepository<StudentExtTraining, Long> {
}
サービスになります。
@Service
public class HistoryTrainingService {
@Inject
private StudentExtTrainingRepository studentExtTrainingRepository;
}
私は/春のデータリポジトリの別のプロジェクトを持っており、サービスの分離しますEJB。両方とも1つのEARにパックされています。誰も何が間違っているsugestionsを持っていますか?私はこの問題で何時間も過ごしました。私は解決策を見つけることができません。
代わりにSpringを完全に削除し、代わりにApache Deltaspikeを使用してください。それでも問題はありません。 Spring DataとCDIを統合する内部ブリッジがあります。そして、彼らは本当によく書かれていません。 Java EEとSpringを混用しないでください。私のアドバイスです。春は独自のもので、うまく動作しません。 –