Unsatisfied dependencies for type [...] with qualifiers [@Default] at injection point (using @Stateful EJB with CDI)

I had the same problem with this misleading exception...

By adding @Stateful to UserRepository you expose EJB methods of the CachingRepository interface without having a no-interface view declared. Add @LocalBean to UserRepository to activate the no-interface view. See EJB 3.1 Specification, Section 4.9.8 "Session Bean's No-Interface View"

The bean class must designate that it exposes a no-interface view via its bean class definition or in the deployment descriptor. The following rules apply:

  • ...
  • If the bean exposes at least one other client view, the bean designates that it exposes a no-interface view by means of the @LocalBean annotation on the bean class or in the deployment descriptor.
  • ...

I also refer to this stackoverflow answer for more information about no-interface views.


I had the same error.

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type UserTransaction with qualifiers @Default at injection point [BackedAnnotatedField] @Inject...

I solved this problem like this: I used UserTransaction this way when I received an error.

@Inject
UserTransaction trans;

Instead of @Inject, I used @Resource annotation.