【发布时间】:2014-02-10 16:18:25
【问题描述】:
我有一个 ExceptionMapper 定义如下
@Provider
public class MyExceptionMapper implements ExceptionMapper<Throwable> {
@Inject
private Manager myManager;
@Override
public Response toResponse(Throwable exception) {
// My implementation
}
}
在 glassfish 4 上部署此代码会导致异常:
org.glassfish.hk2.api.UnsatisfiedDependencyException:
There was no object available for injection at
Injectee(requiredType=Manager,parent=MyExceptionMapper,qualifiers {}),position=-1,optional=false,self=false,unqualified=null,955636053)
当我使用 @Context 而不是 @Inject 时,我没有看到异常,但 myManager 为空 我尝试将 MyManager 设置为 @ManagedBean、@Singleton 或 EJB(无状态、单例)并且不起作用
【问题讨论】:
-
感谢您的建议。但是建议的解决方案不太实用,因为我必须绑定我需要在 MyExceptionMapper 中注入的所有 CDI bean(以及依赖项)
-
你在哪里部署? glassfish-4?
-
你在创建 beans.xml 吗?没有它注入注解不起作用。
-
@Fedy2 它正在使用 glassfish 4.1.1