Description:
|
Having an "unsatisfied dependency"
(at injection point x1 of class X while injecting an instance of interface Y)
can have several causes: - The jar
(of class YImpl)
is not in the classpath - The jar
(of class YImpl)
is in the classpath, but the beans.xml
does not exist or
is not being picked up (for whatever reason, such as problems with WEB-INF/beans.xml on some containers) - The jar
(of class YImpl)
is in the classpath, the beans.xml is picked up but the qualifiers etc don't match.
So, instead of just saying "unsatisfied dependency ...": it should say something like this: - Unsatisfied dependency ... and there is no concrete implementing class
of interface (org.app.Y)
in the classpath. - Unsatisfied dependency ... and the concrete implementing class(es)
(org.app.YImpl1, org.app.YImpl2)
are not loaded as managed beans through a beans.xml. - Unsatisfied dependency ... and none of the managed beans of the same type
(org.app.YImpl1, org.app.YImpl2)
match.
Note: spring's exceptions differentiate between these cases (they explicitly define their appContext.xml set, so case 2 is impossible and case 1 throws a "app context file not found" exception.
|