CDIで非常に簡単な点はありません!CDIでインターフェイスをインジェクトする
私は自分のアプリケーションでこれらのクラスを持っている:
org.jboss.weld.exceptions.DeploymentException:WELD-001408を
public class CarrelloController extends AbstractController { @Inject CarrelloService carrelloService; ... } @Stateless public class CarrelloService implements CarrelloDataProvider { ... } public interface CarrelloDataProvider { public Oggetto getSomething(String foo); }
はしかし、私が展開した後、次のエラーを取得しています: 修飾子付きのCarrelloServiceタイプの満たされていない依存性 @注入ポイントのデフォルト[BackedAnnotatedField] @Inject @Default it.footballove.web.controller.CarrelloController.carrelloService at org.jbossでorg.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:359) で3210 it.footballove.web.controller.CarrelloController.carrelloService(CarrelloController.java:0)
。 weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281) でorg.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134) org.jboss.weld.bootstrap.Validator.validateRIBean(でValidator.java:155) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518) at org.jboss.weld.b ootstrap.ConcurrentValidator $ 1.doWork(ConcurrentValidator.java:68) でorg.jboss.weld.bootstrap.ConcurrentValidator $ 1.doWork(ConcurrentValidator.java:66) org.jboss.weld.executor.IterativeWorkerTaskFactory $ 1.callで のjavaでjava.util.concurrent.FutureTask.runで org.jboss.weld.executor.IterativeWorkerTaskFactory $ 1.callは(IterativeWorkerTaskFactory.java:53)で(IterativeWorkerTaskFactory.java:60) (FutureTask.java:266) .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) を に移動します。java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java: 745)例外0:
これはインターフェイスを使用した場合にのみ得られます。代わりに抽象クラスは問題ありません!
なぜですか?
私はあなたが意味することを理解していません_Iは、インターフェイスを使用しているだけです。代わりに抽象クラスは問題ありません!_。あなたが投稿したコードは、注入ポイントのタイプがクラス 'CarrelloService'であり、そのインターフェース' CarrelloDataProvider'ではないことを示しています。なぜあなたはそうしていますか? –
その場合、私は具体的な具体的な実装が必要であることを知っているからです。 私が抽象クラスとしてCarrelloDataProviderを定義し、それを拡張するようにしてもエラーは発生しません。 –