如果您有多个框架管理同一个bean类,则会发生这种情况。例如,JSF 和 CDI,或JSF 和 Spring,或CDI 和
Spring等。仔细检查您在Bean上的配置和注释。
如果您使用的是CDI,并且在
@Named整个类中使用了多个注释,那么也会发生这种情况。例如,
@Named直接在类上将其注册为托管Bean,在类上使用
@Producesgetter方法注册另一个。您需要问自己是否
真的 必要。您也可以使用
#{bean.someObject}代替#{someObject}。@Named@RequestScopedpublic class Bean { @PostConstruct public void init() { // ... } @Named @Produces public SomeObject getSomeObject() { // ... }}如果您的托管bean扩展了一些抽象类,而该抽象类又具有
@PostConstructon方法,那么也会发生这种情况。您应该从中删除注释。另外,你应该让init方法抽象的,
不 具有
@PostConstruct对实现bean:
public abstract class baseBean { @PostConstruct public void postConstruct() { init(); } public abstract void init();}


