chr*_*ina 77 java cdi jboss-weld
我在java Web表单中编写了一个简单的程序但是我收到以下错误:
WELD-000072声明钝化范围的管理bean必须具有钝化功能.Bean:
BeanPakage.DemoBeans带有限定符[@Any@Default@Named]的托管Bean [类]
谁能告诉我这个错误来自哪里?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ndy 158
您可以通过实现Serializable接口来实现bean钝化:
public class DemoBean implements Serializable { ... }
Run Code Online (Sandbox Code Playgroud)
请注意,对钝化能力有更多要求.有关更多信息,请参阅焊接文档.
Tim*_*Tim 19
即使CDI bean可序列化,错误仍可能保留:
WELD-000072 Managed bean declaring a passivating scope must be passivation capable
Run Code Online (Sandbox Code Playgroud)
示例类:
@Named
@ConversationScoped
public class TransactionMatchController implements Serializable {
...
}
Run Code Online (Sandbox Code Playgroud)
确保所有@Interceptors都是可以自由的:
@Interceptor
@Transactional
public class TransactionInterceptor implements Serializable {
...
}
Run Code Online (Sandbox Code Playgroud)
小智 5
进行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;
}
}
Run Code Online (Sandbox Code Playgroud)