Java错误:WELD-000072声明钝化范围的托pipebean必须具有钝化function

我写了一个简单的程序在Java Web窗体,但我收到以下错误:

WELD-000072声明钝化范围的托pipebean必须具有钝化function。 Bean:受限Bean [带有限定符的类BeanPakage.DemoBeans] [@Any @Default @Named]

谁能告诉我这个错误来自哪里?

我的代码是:

package BeanPakage; import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named("DemoBeans") @SessionScoped public class DemoBeans { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 

你可以通过实现Serializable接口使你的bean钝化成为可能:

 public class DemoBean implements Serializable { ... } 

请注意,对钝化能力有更多的要求。 有关更多信息,请参阅焊接文档。

即使CDI bean是可序列化的,该错误可能仍然存在:

 WELD-000072 Managed bean declaring a passivating scope must be passivation capable 

示例类:

 @Named @ConversationScoped public class TransactionMatchController implements Serializable { ... } 

确保所有的@Interceptors也可以被seializable:

 @Interceptor @Transactional public class TransactionInterceptor implements Serializable { ... } 

使DemoBeans 序列化

 @Named("DemoBeans") @SessionScoped public class DemoBeans implements Serializable { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 

它必须是可序列化的。

看到这个答案。

https://community.jboss.org/thread/179828

最好的,安德斯

您还可以使用注释激活bean的钝化行为:

@Stateful(passivationCapable =真)

在这种情况下,你不需要实现Serializable接口。

问候。 乔治

validation导入

(有时netbeans使用别人库中的其他人)

例。 import javax.faces.view.ViewScoped; 通过导入javax.faces.bean.ViewScoped更改它;