我有两个Managed Bean:
SessionBean:
@Named(value = "sessionBean")
@SessionScoped
public class SessionBean implements Serializable {
private final Param param
SessionBean(Param param) {
this.param = param;
}
}
Run Code Online (Sandbox Code Playgroud)
和TypesBean:
@Named(value = "typesBean")
@RequestScoped
public class TypesBean {
@Inject
private SessionBean session;
}
Run Code Online (Sandbox Code Playgroud)
该项目将生成,但不会部署:
部署期间发生错误:加载应用程序时发生异常:WELD-001410注入点[field] @Inject私有com.example.TypesBean.session具有不可代理的依赖关系。请参阅server.log以获取更多详细信息。
有什么问题?
问题在于SessionBean类上缺少可访问的无参数构造函数。
OP指出的一种解决方案是:
“问题出在
finalSessionBean的方法上。删除final方法并将其公开化-解决问题。很抱歉浪费您的时间。”
或者...
@Named(value = "sessionBean")
@SessionScoped
public class SessionBean implements Serializable {
. . . //variables, setters, getters and other methods
private final Param param
public SessionBean(Param param) {
this.param = param;
}
// no-args constructor used by CDI for proxying only
// but is subsequently replaced with an instance
// created using the above constructor.
protected SessionBean() {
this(null);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3902 次 |
| 最近记录: |